--[[
    @Author       : GGELUA
    @Date         : 2022-02-27 16:48:12
Last Modified by: GGELUA
Last Modified time: 2023-05-25 20:16:34
--]]
local 战斗主控 = class('战斗主控')
local ggf = require('GGE.函数')
local 九黎城攻击技能 = {枫影二刃 = 1,三荒尽灭 = 1,力辟苍穹 = 1,铁血生风 = 1,一斧开天 = 1,魔神之刃 = 1}
local function 排序(a, b) return a.显示xy.y < b.显示xy.y end
function 战斗主控:初始化(当前)
	self.当前 = 当前
	self.敌方位置 = {
        [1] = { y = 188, x = 347 },
        [3] = { y = 159, x = 410 },
        [2] = { y = 234, x = 280 },
        [4] = { y = 119, x = 477 },
        [5] = { y = 281, x = 211 },
        [6] = { y = 233, x = 396 },
        [7] = { y = 268, x = 336 },
        [8] = { y = 195, x = 463 },
        [9] = { y = 297, x = 277 },
        [10] = { y = 160, x = 528 },
		[11] = { y = 219, x = 372 },
		[12] = { y = 185, x = 429 },
		[13] = { y = 247, x = 316 },
		[14] = { y = 193, x = 544 },
		[15] = { y = 292, x = 344 }
    }
    self.我方位置 = {
        [1] = { y = 421, x = 709 },
        [2] = { y = 450, x = 640 },
        [3] = { y = 380, x = 770 },
        [4] = { y = 485, x = 575 },
        [5] = { y = 345, x = 835 },
        [6] = { y = 355, x = 635 },
        [7] = { y = 390, x = 570 },
        [8] = { y = 320, x = 700 },
        [9] = { y = 425, x = 505 },
        [10] = { y = 285, x = 765 },
		[11] = { y = 365, x = 670 },
		[12] = { y = 410, x = 600 },
		[13] = { y = 355, x = 730 },
		[14] = { y = 460, x = 535 },
		[15] = { y = 320, x = 795 }
    }
    self.阵型位置 = {}
    self.阵型位置["天覆阵"] = {
        ["我方"] = {
            [1] = { y = 464, x = 758 },
            [2] = { y = 445, x = 645 },
            [3] = { y = 385, x = 765 },
            [4] = { y = 475, x = 585 },
            [5] = { y = 355, x = 825 },
            [6] = { y = 355, x = 635 },
            [7] = { y = 385, x = 575 },
            [8] = { y = 325, x = 695 },
            [9] = { y = 415, x = 515 },
            [10] = { y = 295, x = 755 },
			[11] = { y = 355, x = 695 },
			[12] = { y = 405, x = 625 },
			[13] = { y = 355, x = 755 },
			[14] = { y = 455, x = 555 },
			[15] = { y = 315, x = 795 }
        },
        ["敌方"] = {
            [1] = { y = 183, x = 310 },
            [2] = { y = 240, x = 295 },
            [3] = { y = 180, x = 415 },
            [4] = { y = 270, x = 235 },
            [5] = { y = 150, x = 475 },
            [6] = { y = 250, x = 400 },
            [7] = { y = 280, x = 340 },
            [8] = { y = 220, x = 460 },
            [9] = { y = 310, x = 280 },
            [10] = { y = 190, x = 520 },
			[11] = { y = 260, x = 325 },
			[12] = { y = 200, x = 445 },
			[13] = { y = 290, x = 265 },
			[14] = { y = 170, x = 505 },
			[15] = { y = 260, x = 430 }
        }
    }
    self.阵型位置["云垂阵"] = {
        ["我方"] = {
            [1] = { y = 499, x = 808 },
            [2] = { y = 445, x = 645 },
            [3] = { y = 385, x = 765 },
            [4] = { y = 475, x = 585 },
            [5] = { y = 355, x = 825 },
            [6] = { y = 355, x = 635 },
            [7] = { y = 385, x = 575 },
            [8] = { y = 325, x = 695 },
            [9] = { y = 415, x = 515 },
            [10] = { y = 295, x = 755 },
			[11] = { y = 355, x = 695 },
			[12] = { y = 405, x = 625 },
			[13] = { y = 355, x = 755 },
			[14] = { y = 455, x = 555 },
			[15] = { y = 315, x = 795 }
        },
        ["敌方"] = {
            [1] = { y = 156, x = 269 },
            [2] = { y = 240, x = 295 },
            [3] = { y = 180, x = 415 },
            [4] = { y = 270, x = 235 },
            [5] = { y = 150, x = 475 },
            [6] = { y = 250, x = 400 },
            [7] = { y = 280, x = 340 },
            [8] = { y = 220, x = 460 },
            [9] = { y = 310, x = 280 },
            [10] = { y = 190, x = 520 },
			[11] = { y = 270, x = 310 },
			[12] = { y = 210, x = 430 },
			[13] = { y = 300, x = 250 },
			[14] = { y = 170, x = 490 },
			[15] = { y = 250, x = 425 }
        }
    }
    self.阵型位置["风扬阵"] = {
        ["我方"] = {
            [1] = { y = 483, x = 776 },
            [2] = { y = 451, x = 845 },
            [3] = { y = 526, x = 701 },
            [4] = { y = 390, x = 769 },
            [5] = { y = 454, x = 648 },
            [6] = { y = 355, x = 635 },
            [7] = { y = 385, x = 575 },
            [8] = { y = 325, x = 695 },
            [9] = { y = 415, x = 515 },
            [10] = { y = 295, x = 755 },
			[11] = { y = 355, x = 715 },
			[12] = { y = 385, x = 785 },
			[13] = { y = 325, x = 651 },
			[14] = { y = 399, x = 719 },
			[15] = { y = 363, x = 598 }
        },
        ["敌方"] = {
            [1] = { y = 189, x = 287 },
            [2] = { y = 214, x = 220 },
            [3] = { y = 143, x = 352 },
            [4] = { y = 248, x = 280 },
            [5] = { y = 191, x = 406 },
            [6] = { y = 250, x = 400 },
            [7] = { y = 280, x = 340 },
            [8] = { y = 220, x = 460 },
            [9] = { y = 310, x = 280 },
            [10] = { y = 190, x = 520 },
			[11] = { y = 250, x = 440 },
			[12] = { y = 280, x = 380 },
			[13] = { y = 220, x = 500 },
			[14] = { y = 310, x = 320 },
			[15] = { y = 190, x = 570 }
        }
    }
    self.阵型位置["虎翼阵"] = {
        ["我方"] = {
            [1] = { y = 501, x = 801 },
            [2] = { y = 411, x = 803 },
            [3] = { y = 496, x = 679 },
            [4] = { y = 329, x = 825 },
            [5] = { y = 480, x = 568 },
            [6] = { y = 355, x = 635 },
            [7] = { y = 385, x = 575 },
            [8] = { y = 325, x = 695 },
            [9] = { y = 415, x = 515 },
            [10] = { y = 295, x = 755 },
			[11] = { y = 355, x = 665 },
			[12] = { y = 385, x = 605 },
			[13] = { y = 325, x = 725 },
			[14] = { y = 415, x = 545 },
			[15] = { y = 295, x = 785 }
        },
        ["敌方"] = {
            [1] = { y = 142, x = 257 },
            [2] = { y = 209, x = 230 },
            [3] = { y = 146, x = 365 },
            [4] = { y = 275, x = 223 },
            [5] = { y = 160, x = 459 },
            [6] = { y = 250, x = 400 },
            [7] = { y = 280, x = 340 },
            [8] = { y = 220, x = 460 },
            [9] = { y = 310, x = 280 },
            [10] = { y = 190, x = 520 },
			[11] = { y = 250, x = 440 },
			[12] = { y = 280, x = 380 },
			[13] = { y = 220, x = 500 },
			[14] = { y = 310, x = 320 },
			[15] = { y = 190, x = 570 }
        }
    }
    self.阵型位置["鸟翔阵"] = {
        ["我方"] = {
            [1] = { y = 438, x = 732 },
            [2] = { y = 433, x = 864 },
            [3] = { y = 516, x = 690 },
            [4] = { y = 341, x = 813 },
            [5] = { y = 480, x = 568 },
            [6] = { y = 355, x = 635 },
            [7] = { y = 385, x = 575 },
            [8] = { y = 325, x = 695 },
            [9] = { y = 415, x = 515 },
            [10] = { y = 295, x = 755 },
			[11] = { y = 355, x = 675 },
			[12] = { y = 385, x = 615 },
			[13] = { y = 325, x = 735 },
			[14] = { y = 415, x = 555 },
			[15] = { y = 295, x = 795 }
        },
        ["敌方"] = {
            [1] = { y = 203, x = 347 },
            [2] = { y = 196, x = 239 },
            [3] = { y = 136, x = 369 },
            [4] = { y = 275, x = 223 },
            [5] = { y = 154, x = 470 },
            [6] = { y = 250, x = 400 },
            [7] = { y = 280, x = 340 },
            [8] = { y = 220, x = 460 },
            [9] = { y = 310, x = 280 },
            [10] = { y = 190, x = 520 }
        }
    }
    self.阵型位置["地载阵"] = {
        ["我方"] = {
            [1] = { y = 464, x = 754 },
            [2] = { y = 412, x = 689 },
            [3] = { y = 437, x = 813 },
            [4] = { y = 488, x = 674 },
            [5] = { y = 525, x = 821 },
            [6] = { y = 355, x = 635 },
            [7] = { y = 385, x = 575 },
            [8] = { y = 325, x = 695 },
            [9] = { y = 415, x = 515 },
            [10] = { y = 295, x = 755 },
			[11] = { y = 250, x = 440 },
			[12] = { y = 280, x = 380 },
			[13] = { y = 220, x = 500 },
			[14] = { y = 310, x = 320 },
			[15] = { y = 190, x = 570 }
        },
        ["敌方"] = {
            [1] = { y = 167, x = 306 },
            [2] = { y = 211, x = 355 },
            [3] = { y = 200, x = 242 },
            [4] = { y = 134, x = 376 },
            [5] = { y = 121, x = 251 },
            [6] = { y = 250, x = 400 },
            [7] = { y = 280, x = 340 },
            [8] = { y = 220, x = 460 },
            [9] = { y = 310, x = 280 },
            [10] = { y = 190, x = 520 },
			[11] = { y = 250, x = 440 },
			[12] = { y = 280, x = 380 },
			[13] = { y = 220, x = 500 },
			[14] = { y = 310, x = 320 },
			[15] = { y = 190, x = 570 }
        }
    }
    self.阵型位置["龙飞阵"] = {
        ["我方"] = {
            [1] = { y = 468, x = 753 },
            [2] = { y = 512, x = 810 },
            [3] = { y = 347, x = 808 },
            [4] = { y = 439, x = 618 },
            [5] = { y = 414, x = 696 },
            [6] = { y = 355, x = 635 },
            [7] = { y = 385, x = 575 },
            [8] = { y = 325, x = 695 },
            [9] = { y = 415, x = 515 },
            [10] = { y = 295, x = 755 },
			[11] = { y = 355, x = 675 },
			[12] = { y = 385, x = 615 },
			[13] = { y = 325, x = 735 },
			[14] = { y = 415, x = 555 },
			[15] = { y = 295, x = 795 }
        },
        ["敌方"] = {
            [1] = { y = 174, x = 277 },
            [2] = { y = 124, x = 215 },
            [3] = { y = 269, x = 223 },
            [4] = { y = 168, x = 407 },
            [5] = { y = 212, x = 330 },
            [6] = { y = 250, x = 400 },
            [7] = { y = 280, x = 340 },
            [8] = { y = 220, x = 460 },
            [9] = { y = 310, x = 280 },
            [10] = { y = 190, x = 520 },
			[11] = { y = 250, x = 440 },
			[12] = { y = 280, x = 380 },
			[13] = { y = 220, x = 500 },
			[14] = { y = 310, x = 320 },
			[15] = { y = 190, x = 570 }
        }
    }
    self.阵型位置["蛇蟠阵"] = {
        ["我方"] = {
            [1] = { y = 468, x = 753 },
            [2] = { y = 505, x = 682 },
            [3] = { y = 448, x = 820 },
            [4] = { y = 439, x = 618 },
            [5] = { y = 535, x = 826 },
            [6] = { y = 355, x = 635 },
            [7] = { y = 385, x = 575 },
            [8] = { y = 325, x = 695 },
            [9] = { y = 415, x = 515 },
            [10] = { y = 295, x = 755 },
			[11] = { y = 355, x = 675 },
			[12] = { y = 385, x = 615 },
			[13] = { y = 325, x = 735 },
			[14] = { y = 415, x = 555 },
			[15] = { y = 295, x = 795 }
        },
        ["敌方"] = {
            [1] = { y = 174, x = 277 },
            [2] = { y = 132, x = 351 },
            [3] = { y = 218, x = 201 },
            [4] = { y = 168, x = 407 },
            [5] = { y = 128, x = 223 },
            [6] = { y = 250, x = 400 },
            [7] = { y = 280, x = 340 },
            [8] = { y = 220, x = 460 },
            [9] = { y = 310, x = 280 },
            [10] = { y = 190, x = 520 },
			[11] = { y = 250, x = 440 },
			[12] = { y = 280, x = 380 },
			[13] = { y = 220, x = 500 },
			[14] = { y = 310, x = 320 },
			[15] = { y = 190, x = 570 }
        }
    }
    self.阵型位置["鹰啸阵"] = {
        ["我方"] = {
            [1] = { y = 468, x = 753 },
            [2] = { y = 444, x = 623 },
            [3] = { y = 381, x = 759 },
            [4] = { y = 416, x = 688 },
            [5] = { y = 532, x = 826 },
            [6] = { y = 355, x = 635 },
            [7] = { y = 385, x = 575 },
            [8] = { y = 325, x = 695 },
            [9] = { y = 415, x = 515 },
            [10] = { y = 295, x = 755 },
			[11] = { y = 355, x = 675 },
			[12] = { y = 385, x = 615 },
			[13] = { y = 325, x = 735 },
			[14] = { y = 415, x = 555 },
			[15] = { y = 295, x = 795 }
        },
        ["敌方"] = {
            [1] = { y = 174, x = 277 },
            [2] = { y = 168, x = 408 },
            [3] = { y = 247, x = 274 },
            [4] = { y = 211, x = 341 },
            [5] = { y = 128, x = 223 },
            [6] = { y = 250, x = 400 },
            [7] = { y = 280, x = 340 },
            [8] = { y = 220, x = 460 },
            [9] = { y = 310, x = 280 },
            [10] = { y = 190, x = 520 },
			[11] = { y = 250, x = 440 },
			[12] = { y = 280, x = 380 },
			[13] = { y = 220, x = 500 },
			[14] = { y = 310, x = 320 },
			[15] = { y = 190, x = 570 }
        }
    }
    self.阵型位置["雷绝阵"] = {
        ["我方"] = {
            [1] = { y = 509, x = 834 },
            [2] = { y = 507, x = 705 },
            [3] = { y = 429, x = 853 },
            [4] = { y = 445, x = 631 },
            [5] = { y = 379, x = 763 },
            [6] = { y = 355, x = 635 },
            [7] = { y = 385, x = 575 },
            [8] = { y = 325, x = 695 },
            [9] = { y = 415, x = 515 },
            [10] = { y = 295, x = 755 },
			[11] = { y = 355, x = 675 },
			[12] = { y = 385, x = 615 },
			[13] = { y = 325, x = 735 },
			[14] = { y = 415, x = 555 },
			[15] = { y = 295, x = 795 }
        },
        ["敌方"] = {
            [1] = { y = 130, x = 234 },
            [2] = { y = 131, x = 335 },
            [3] = { y = 201, x = 234 },
            [4] = { y = 170, x = 401 },
            [5] = { y = 253, x = 289 },
            [6] = { y = 250, x = 400 },
            [7] = { y = 280, x = 340 },
            [8] = { y = 220, x = 460 },
            [9] = { y = 310, x = 280 },
            [10] = { y = 190, x = 520 },
			[11] = { y = 250, x = 440 },
			[12] = { y = 280, x = 380 },
			[13] = { y = 220, x = 500 },
			[14] = { y = 310, x = 320 },
			[15] = { y = 190, x = 570 }
        }
    }
    self.阵型位置["boss阵法1"] = {
        ["我方"] = {
            [1] = { y = 464, x = 758 },
            [2] = { y = 445, x = 645 },
            [3] = { y = 385, x = 765 },
            [4] = { y = 475, x = 585 },
            [5] = { y = 355, x = 825 },
            [6] = { y = 355, x = 635 },
            [7] = { y = 385, x = 575 },
            [8] = { y = 325, x = 695 },
            [9] = { y = 415, x = 515 },
            [10] = { y = 295, x = 755 },
			[11] = { y = 355, x = 675 },
			[12] = { y = 385, x = 615 },
			[13] = { y = 325, x = 735 },
			[14] = { y = 415, x = 555 },
			[15] = { y = 295, x = 795 }
        },
        ["敌方"] = {
            [1] = { y = 183, x = 310 },
            [2] = { y = 240, x = 295 },
            [3] = { y = 180, x = 415 },
            [4] = { y = 270, x = 235 },
            [5] = { y = 150, x = 475 },
            [6] = { y = 250, x = 400 },
            [7] = { y = 280, x = 340 },
            [8] = { y = 220, x = 460 },
            [9] = { y = 310, x = 280 },
            [10] = { y = 190, x = 520 },
			[11] = { y = 250, x = 440 },
			[12] = { y = 280, x = 380 },
			[13] = { y = 220, x = 500 },
			[14] = { y = 310, x = 320 },
			[15] = { y = 190, x = 570 }
        }
    }
    self.阵型位置["烛龙阵法"] = {
        ["我方"] = {
            [1] = { y = 464, x = 758 },
            [2] = { y = 445, x = 645 },
            [3] = { y = 385, x = 765 },
            [4] = { y = 475, x = 585 },
            [5] = { y = 355, x = 825 },
            [6] = { y = 355, x = 635 },
            [7] = { y = 385, x = 575 },
            [8] = { y = 325, x = 695 },
            [9] = { y = 415, x = 515 },
            [10] = { y = 295, x = 755 },
			[11] = { y = 355, x = 675 },
			[12] = { y = 385, x = 615 },
			[13] = { y = 325, x = 735 },
			[14] = { y = 415, x = 555 },
			[15] = { y = 295, x = 795 }
        },
        ["敌方"] = {
            [1] = { y = 392, x = 304 },
            [2] = { y = 240, x = 295 },
            [3] = { y = 180, x = 415 },
            [4] = { y = 270, x = 235 },
            [5] = { y = 150, x = 475 },
            [6] = { y = 250, x = 400 },
            [7] = { y = 280, x = 340 },
            [8] = { y = 220, x = 460 },
            [9] = { y = 310, x = 280 },
            [10] = { y = 190, x = 520 },
			[11] = { y = 250, x = 440 },
			[12] = { y = 280, x = 380 },
			[13] = { y = 220, x = 500 },
			[14] = { y = 310, x = 320 },
			[15] = { y = 190, x = 570 }
        }
    }
    self.阵型位置["自在天魔阵法"] = {
        ["我方"] = {
            [1] = { y = 464, x = 758 },
            [2] = { y = 445, x = 645 },
            [3] = { y = 385, x = 765 },
            [4] = { y = 475, x = 585 },
            [5] = { y = 355, x = 825 },
            [6] = { y = 355, x = 635 },
            [7] = { y = 385, x = 575 },
            [8] = { y = 325, x = 695 },
            [9] = { y = 415, x = 515 },
            [10] = { y = 295, x = 755 },
			[11] = { y = 355, x = 675 },
			[12] = { y = 385, x = 615 },
			[13] = { y = 325, x = 735 },
			[14] = { y = 415, x = 555 },
			[15] = { y = 295, x = 795 }
        },
        ["敌方"] = {
            [1] = { y = 188, x = 347 },
            [3] = { x = 262, y = 302 },
            [2] = { x = 178, y = 286 },
            [4] = { x = 336, y = 294 },
            [5] = { x = 409, y = 275 },
            [6] = { x = 459, y = 239 },
            [7] = { x = 506, y = 186 },
            [8] = { x = 515, y = 137 },
            [9] = { x = 195, y = 189 },
            [10] = { x = 392, y = 93 },
			[11] = { y = 239, x = 459 },
			[12] = { y = 186, x = 506 },
			[13] = { y = 137, x = 515 },
			[14] = { y = 189, x = 195 },
			[15] = { y = 93, x = 392 }
        }
    }
	self.背景 = require("SDL.精灵")(0, 0, 0, 引擎.宽度, 引擎.高度):置颜色(3, 20, 60, 150)
	self.背景圆 = __res:取精灵(__res:取地址('shape/ui/zd/', 0xd17553))
	self.背景状态 = 0
	self.回合进程 = "加载"
	self.加载数量 = 0
	self.战斗单位 = {}
	self.数字图片 = 多开数据[self.当前].__主控.战斗文字[5]
	self.血条背景 = __res:取精灵(__res:取地址('shape/ui/zd/', 0x4D0A334C))
	if not 多开数据[self.当前].__主控.观战中 then
		self.请等待 = __res:取精灵(__res:取地址('shape/ui/zd/', 0xEE1713AC))
	else
		self.请等待 = __res:取精灵(__res:取地址('shape/ui/zd/', 4254597813))
	end
	self.拼接偏移 = require("GGE.坐标")()
	self.战斗信息提示 = { 开关 = false, 内容 = "", 起始时间 = 0, 停止时间 = 0, 文字 = 名字16:置颜色(232, 140, 32):取精灵("战斗文字") }
	self.战斗快捷键法术 = nil
	self.宠物战斗快捷键法术 = nil
	self.拼接特效 = {}
	self.间隔等待 = 20
	self.显示排序 = {}
	self.状态显示 = false
	self.状态显示2 = false
	self.回合数 = 0
	self.特殊状态 = {}
	self.显示表 = {}
	self.无间地狱 = nil
	self.魔火焚世 = nil
	self.媚眼如丝 = nil
	self.清静菩提 = nil
end

function 战斗主控:是否开启自动()
	for n = 1, #self.战斗单位 do
		if self.战斗单位[n].数据.类型 == "角色" and self.战斗单位[n].数据.自动战斗 and self.战斗单位[n].数据.id == 多开数据[当前 or self and self.当前].角色信息.id then --self.战斗单位[n].数据.自动战斗 and
			发送数据(self.当前,5511)
		end
	end
end


function 战斗主控:加载单位(数据)
	self.战斗单位[#self.战斗单位 + 1] = __战斗单位(self.当前)
	self.战斗单位[#self.战斗单位]:创建单位(数据, self.队伍id, 数据.编号)
	if #self.战斗单位 == self.单位总数 then
		if not 多开数据[self.当前].__主控.观战中 then
			发送数据(当前 or self and self.当前, 5501)
		end
		self:是否开启自动()
	end
end
function 战斗主控:重置丸子技能(数据)
	self.丸子特效 = nil
	self.丸子time = {开关 = true,时间=os.time() + 3}
	self.丸子进化 = 数据.丸子进化
	self.超反击伤害 = 数据.超反击伤害
	self:增加丸子入场(self.丸子进化)
end

function 战斗主控:增加丸子入场(名称)
	if 名称 then
		local qtb = 取技能信息(名称)
		if qtb[7] ~= nil then
			self.丸子特效=__res:取图像(__res:取地址("shape/jn/", qtb[8])):到精灵()
			self.丸子特效:置颜色(255,105,180,255)
		end
	end
end
function 战斗主控:取九黎攻击动作(攻击方, 排除)
	local 攻击顺序 = {"攻击","连击1","连击3"}
	self.攻击动作 = self.攻击动作 + 1
	if self.攻击动作 > #攻击顺序 then
	    self.攻击动作 = 1
	end
	while self.攻击动作 == 排除 do
		self.攻击动作 = math.random(1, #攻击顺序)
	end
	return 攻击顺序[self.攻击动作]
end
function 战斗主控:取攻击位置(编号, 目标, 不计算浮空高度)
	local 攻击方 = self.战斗单位[编号]
	local 被攻击 = self.战斗单位[目标]
	local 临时模型 = 攻击方.模型

	if 攻击方.变身数据 ~= nil then
		临时模型 = 攻击方.变身数据
	end

	local Position = 被攻击.数据.位置
	local x, y = self:攻击坐标调整(临时模型, 攻击方.武器子类)
	local offset = 生成XY(x, y)
	local AttackPos = 两点算近战攻击坐标(被攻击.显示xy, 攻击方.初始xy, offset)

	return AttackPos.x, AttackPos.y
end
function 战斗主控:设置命令回合(数据)
	多开数据[self.当前].__UI界面.界面层.战斗界面:更新类型(数据)
	self.进程 = "命令"
	self.命令数据 = { 计时 = os.time(), 分 = 5, 秒 = 0 }
end

function 战斗主控:设置重连命令回合(数据, 分, 秒)
	多开数据[self.当前].__UI界面.界面层.战斗界面:更新类型(数据)
	self.进程 = "命令"
	self.命令数据 = { 计时 = os.time(), 分 = 分, 秒 = 秒 }
end

function 战斗主控:设置战斗流程(内容)
	self.战斗流程 = 内容
	-- for i = 1, #self.特殊状态 do
	-- 	if self.特殊状态[i] ~= nil then
	-- 		if self.特殊状态[i].回合 == 0 then
	-- 			self:特殊状态处理(self.特殊状态[i].名称, 2)
	-- 			self.特殊状态[i] = nil
	-- 			table.remove(self.特殊状态, i)
	-- 		else
	-- 			self.特殊状态[i].回合 = self.特殊状态[i].回合 - 1
	-- 		end
	-- 	end
	-- end
	for n = 1, #self.战斗流程 do
		if self.战斗流程 ~= nil and self.战斗流程[n] ~= nil then
			self.战斗流程[n].执行 = false
			self.战斗流程[n].允许 = false
		end
	end
	if #self.战斗流程 == 0 then
		self.进程 = "等待"
		if 多开数据[self.当前].__主控.观战中 == false then
			发送数据(当前 or self and self.当前, 5503, { 战斗id = self.战斗id })
		end
		return
	end
	if self.回合数 == nil then self.回合数 = 0 end
	self.回合数 = self.回合数 + 1
	self.进程 = "计算"
end

function 战斗主控:取消状态(内容)
	if 内容.id == nil or 内容.名称 == nil or self.战斗单位[内容.id] == nil then return end
	self.战斗单位[内容.id].状态特效[内容.名称] = nil
	if 内容.名称 == "金刚护法" or 内容.名称 == "分身术" or 内容.名称 == "逆鳞" or 内容.名称 == "修罗隐身" or 内容.名称 == "楚楚可怜" or 内容.名称 == "分身术" then
		if self.战斗单位[内容.id].状态特效["分身术"] == nil and self.战斗单位[内容.id].状态特效["修罗隐身"] == nil and self.战斗单位[内容.id].状态特效["楚楚可怜"] == nil and self.战斗单位[内容.id].状态特效["金刚护法"] == nil then
			self.战斗单位[内容.id]:取消变相()
			if 内容.名称 == "分身术" or 内容.名称 == "修罗隐身" then
				self.战斗单位[内容.id]:取消隐身()
			end
		end
	end
end

function 战斗主控:鬼魂复活(内容)
	self.战斗单位[内容.id]:换动作("待战")
	self.战斗单位[内容.id]:设置掉血(内容.气血, 2)
end

function 战斗主控:施法流程(原始流程, 攻击方, 被攻击, 特效, 全屏)
	self.施法信息 = { 原始流程 = 原始流程, 攻击方 = 攻击方, 被攻击 = 被攻击, 特效 = 特效, 全屏 = 全屏 }
	self.掉血流程 = 0
	self.执行流程 = "施法流程"
end

function 战斗主控:施法流程更新()
	if self.施法信息 and self.战斗单位[self.施法信息.攻击方]:取施法完毕() then
		if type(self.施法信息.被攻击) == "table" then
			if self.施法信息.全屏 then
				self:置全屏技能(self.施法信息.特效, self.战斗单位[self.施法信息.被攻击[1].编号])
			else
				for i = 1, #self.施法信息.被攻击 do
					if self.施法信息.特效 == "雨落寒沙" or self.施法信息.特效 == "飞镖" then
						self.战斗单位[self.施法信息.被攻击[i].编号]:设置飞镖(self.战斗单位[self.施法信息.攻击方].显示xy, self.战斗单位[self.施法信息.攻击方]
							.初始方向, self.施法信息.被攻击[i].伤害, self.施法信息.被攻击[i].死亡, self.施法信息.特效)
					elseif self.施法信息.被攻击[i].特效 and self.施法信息.被攻击[i].特效[1] and skill无需抖动[self.施法信息.被攻击[i].特效[1]]  then
						self.战斗单位[self.施法信息.被攻击[i].编号]:添加法术特效(self.施法信息.被攻击[i].特效[1])
					else
						self.战斗单位[self.施法信息.被攻击[i].编号]:添加法术特效(self.施法信息.特效)
					end
				end
			end
		else
			if self.施法信息.全屏 then
				self:置全屏技能(self.施法信息.特效, self.战斗单位[self.施法信息.被攻击])
			else
				self.战斗单位[self.施法信息.被攻击]:添加法术特效(self.施法信息.特效)
			end
		end
		self.执行流程 = self.施法信息.原始流程
		self.施法信息 = nil
	end
end

local xxdy = 1
function 战斗主控:流程更新()
	xxdy = xxdy + 1
	if xxdy == 100 then
		xxdy = 1
	end
	if self.战斗流程[1] ~= nil and self.战斗流程[1].攻击方 then
		战斗连击单位 = self.战斗流程[1].攻击方 + 0
	end
	if self.战斗单位[self.战斗流程[1].攻击方] then
	    if self.战斗单位[self.战斗流程[1].攻击方].模型 == '影精灵' then
	        self.战斗单位[self.战斗流程[1].攻击方].动画:置帧率("连击3",0.04)
	    end
	end
	print("战斗流程",self.执行流程)
	if self.执行流程 == "施法流程" then
		self:施法流程更新()
		--基础物理流程开始
	elseif self.执行流程 == 1 and self.战斗单位[self.战斗流程[1].被攻击[1].编号]:取状态() and self.战斗单位[self.战斗流程[1].攻击方]:取状态() then -- 攻击
		if self.战斗流程[1].战斗法术 then
			self.战斗单位[self.战斗流程[1].攻击方]:换动作("施法",true)
			for i=1,#self.战斗流程[1].寄存目标 do
				self.战斗单位[self.战斗流程[1].寄存目标[i]]:添加法术特效(self.战斗流程[1].战斗法术)
			end
			self.战斗流程[1].延时等待=os.time()+1
			self.执行流程=1.2
		elseif self.战斗流程[1].前摇掉血 then
			self.战斗单位[self.战斗流程[1].攻击方]:设置掉血(self.战斗流程[1].前摇掉血,1)
			self.战斗流程[1].延时等待=os.time()
			self.执行流程=1.2
		elseif self.战斗流程[1].全屏法术 then
			self.战斗单位[self.战斗流程[1].攻击方]:换动作("施法",true)
			self:施法流程(1.1,self.战斗流程[1].攻击方,self.战斗流程[1].被攻击,self.战斗流程[1].全屏法术,true)
		elseif self.战斗流程[1].全屏22 then --破釜沉舟
			self.战斗单位[self.战斗流程[1].攻击方]:换动作("施法",true)
			self:施法流程(1.3,self.战斗流程[1].攻击方,self.战斗流程[1].被攻击,self.战斗流程[1].全屏22,true)
		else
			self.战斗单位[self.战斗流程[1].攻击方].移动开关=true
			if self.战斗流程[1].友伤 == true then
				self.战斗单位[self.战斗流程[1].攻击方].友伤 = true
				self.战斗单位[self.战斗流程[1].攻击方].移动坐标=self.战斗单位[self.战斗流程[1].被攻击[1].编号]:取移动坐标("友伤")
			else
				self.战斗单位[self.战斗流程[1].攻击方].移动坐标=self.战斗单位[self.战斗流程[1].被攻击[1].编号]:取移动坐标("挨打")
				if self.战斗单位[self.战斗流程[1].攻击方].超级偷袭 then
			    	local abc=self.战斗单位[self.战斗流程[1].攻击方].移动坐标
			    	if self.战斗单位[self.战斗流程[1].攻击方].敌我==1 then
				    	self.战斗单位[self.战斗流程[1].攻击方].移动坐标.x=abc.x-115
				    	self.战斗单位[self.战斗流程[1].攻击方].移动坐标.y=abc.y-55
				    else
				    	self.战斗单位[self.战斗流程[1].攻击方].移动坐标.x=abc.x+115
				    	self.战斗单位[self.战斗流程[1].攻击方].移动坐标.y=abc.y+55
				    end
				    self.战斗单位[self.战斗流程[1].攻击方].偷袭方向 = self.战斗单位[self.战斗流程[1].被攻击[1].编号].初始方向
			    end
			end
			if self.战斗单位[self.战斗流程[1].攻击方].动画.攻击方式==1 then
				self.战斗单位[self.战斗流程[1].攻击方].移动开关=false
			end
			self.执行流程=2
		end
	elseif self.执行流程==1.1 and self.掉血流程==nil and self.拼接特效==nil then
		self.战斗单位[self.战斗流程[1].攻击方].移动开关=true
		self.战斗单位[self.战斗流程[1].攻击方].移动坐标=self.战斗单位[self.战斗流程[1].被攻击[1].编号]:取移动坐标("挨打")
		if self.战斗单位[self.战斗流程[1].攻击方].动画.攻击方式==1 then
			self.战斗单位[self.战斗流程[1].攻击方].移动开关=false
		end
		self.执行流程=2
	elseif self.执行流程==1.2 and os.time()-self.战斗流程[1].延时等待>=1 then --掉血等待
		self.战斗流程[1].延时等待=nil
		self.执行流程=1.1
	elseif self.执行流程==1.3  then
		for i=1,#self.战斗流程[1].寄存目标 do
			self.战斗单位[self.战斗流程[1].寄存目标[i]]:换动作("挨打",nil,true)
			self.战斗单位[self.战斗流程[1].寄存目标[i]]:开启击退(nil)
		end
		self.战斗流程[1].延时等待=os.time()
		self.执行流程=1.4
	elseif self.执行流程==1.4 and os.time()-self.战斗流程[1].延时等待>=2 then
    	self.战斗流程[1].延时等待=nil
    	self.执行流程=1.1
	elseif self.执行流程 == 2 and self.战斗单位[self.战斗流程[1].攻击方].移动开关 == false then
		if self.战斗流程[1].保护数据==nil then
			if 取随机数(1, 100) <= 50 then
				self.战斗单位[self.战斗流程[1].攻击方].开启暴击 = true
			end
			local yjl = ""
			self.战斗流程[1].附带特效 = nil
			if self.战斗单位[self.战斗流程[1].攻击方].模型 == "影精灵" and self.战斗单位[self.战斗流程[1].攻击方].动画.动画.连击1 ~= nil then
				if self.战斗流程[1].技能 == "枫影二刃" then
					if self.战斗流程[1].多次攻击 == 1 then
						yjl = self:取九黎攻击动作(self.战斗流程[1].攻击方 )
					end
				elseif self.战斗流程[1].技能 == "一斧开天" then
					if self.战斗流程[1].致使浮空 == true then
						if self.战斗单位[self.战斗流程[1].攻击方].动画.动画.连击2 then
						    yjl = "连击2"
						else
							yjl = '攻击2'
						end
						self.战斗流程[1].附带特效 = '一斧开天成功'
					else
						yjl = self:取九黎攻击动作(self.战斗流程[1].攻击方 )
						self.战斗流程[1].附带特效 = '一斧开天失败'
					end
				elseif self.战斗流程[1].技能 == "铁血生风" then
					yjl = self:取九黎攻击动作(self.战斗流程[1].攻击方)
				elseif self.战斗流程[1].技能 == "三荒尽灭" then
					yjl = self:取九黎攻击动作(self.战斗流程[1].攻击方)
				elseif self.战斗流程[1].技能 == "力辟苍穹" or self.战斗流程[1].技能 == "魔神之刃" then
					yjl = self:取九黎攻击动作(self.战斗流程[1].攻击方)
				end
				collectgarbage("collect");
			end
			if yjl ~= "" and yjl ~= "攻击" then
				self.战斗单位[self.战斗流程[1].攻击方]:换动作(yjl, true, nil, self.战斗流程[1].结尾气血,self.战斗流程[1].结尾死亡)

				if self.战斗流程[1].被攻击[1].死亡 ~= nil then
					self.战斗单位[self.战斗流程[1].攻击方].动画:置帧率(yjl, 0.1 * math.max(10 , 1) / 10)
				end
			elseif self.战斗单位[self.战斗流程[1].攻击方].开启暴击 ~= nil then
				yjl = "攻击2"
				self.战斗单位[self.战斗流程[1].攻击方]:换动作("攻击2", true, nil, self.战斗流程[1].结尾气血,self.战斗流程[1].结尾死亡)
				if self.战斗流程[1].被攻击[1].死亡 ~= nil then
					self.战斗单位[self.战斗流程[1].攻击方].动画:置帧率("攻击2", 0.1 * math.max(10 , 1) / 10)
				end
			else
				yjl = "攻击"
				self.战斗单位[self.战斗流程[1].攻击方]:换动作("攻击",true,nil,self.战斗流程[1].结尾气血,self.战斗流程[1].结尾死亡)
				if self.战斗流程[1].被攻击[1].死亡 ~= nil then
					self.战斗单位[self.战斗流程[1].攻击方].动画:置帧率("攻击", 0.1 * math.max(10 , 1) / 10)
				end
				if not self.战斗流程[1].假动作 and self.战斗单位[self.战斗流程[1].攻击方].攻击抖动  and not self.战斗流程[1].躲避 then
					self.战斗单位[self.战斗流程[1].被攻击[1].编号].物理抖动开关=true
				end
			end

			self.战斗单位[self.战斗流程[1].攻击方].开启暴击 = nil
			self.执行流程=3
			--collectgarbage("collect");
		else
			self.执行流程=10
			--collectgarbage("collect");
		end--九黎
	elseif self.执行流程 == 3 then
		if self.战斗单位[self.战斗流程[1].攻击方]:取间隔() >= self.战斗单位[self.战斗流程[1].攻击方]:取中间() + self.战斗单位[self.战斗流程[1].攻击方].攻击帧 then
			if self.战斗单位[self.战斗流程[1].攻击方].动画.攻击方式==1 then
				self.战斗单位[self.战斗流程[1].被攻击[1].编号]:设置弓弩(
				{ x = self.战斗单位[self.战斗流程[1].攻击方].显示xy.x - 70, y = self.战斗单位[self.战斗流程[1].攻击方].显示xy.y - 50 },self.战斗单位[self.战斗流程[1].攻击方].初始方向,"弓弩" ..(self.战斗单位[self.战斗流程[1].攻击方].武器等级 < 100 and 1 or self.战斗单位[self.战斗流程[1].攻击方].武器等级 < 130 and 2 or 3))
			end
			self.执行流程 = 3.1
		end
	elseif self.执行流程 == 3.1 then
		if self.战斗单位[self.战斗流程[1].攻击方]:取间隔() >= self.战斗单位[self.战斗流程[1].攻击方]:取中间()+self.战斗单位[self.战斗流程[1].攻击方].攻击帧 then
			if self.战斗流程[1].躲避 then
				self.战斗单位[self.战斗流程[1].被攻击[1].编号]:开启躲避()
				self.执行流程=7
			elseif self.战斗流程[1].假动作 then
				-- self.战斗单位[self.战斗流程[1].被攻击[1].编号]:开启躲避()
				self.执行流程=7
			elseif self.战斗流程[1].共生 then
                for i=1,#self.战斗流程[1].共生 do
					if self.战斗单位[self.战斗流程[1].共生[i].被攻击] ~= nil then
						self.战斗单位[self.战斗流程[1].共生[i].被攻击]:设置掉血(self.战斗流程[1].共生[i].伤害,1)
						self.战斗单位[self.战斗流程[1].共生[i].被攻击]:换动作("挨打",nil,true)
						self.战斗单位[self.战斗流程[1].共生[i].被攻击]:开启击退(self.战斗流程[1].共生[i].死亡,self.战斗单位[self.战斗流程[1].攻击方]:取移动坐标("返回"))
					end
				end
                if self.战斗流程[1].被攻击[1].死亡~=nil then
					self.战斗单位[self.战斗流程[1].攻击方].动画:置帧率("攻击",0.19)
				end
				for n=1,#self.战斗流程[1].被攻击[1].特效 do
					self.战斗单位[self.战斗流程[1].被攻击[1].编号]:添加攻击特效(self.战斗流程[1].被攻击[1].特效[n])
				end
				self.执行流程=17
			else
				self.战斗单位[self.战斗流程[1].被攻击[1].编号]:换动作(self.战斗流程[1].被攻击[1].动作,nil,true)
				self.战斗单位[self.战斗流程[1].被攻击[1].编号]:开启击退(self.战斗流程[1].被攻击[1].死亡,self.战斗单位[self.战斗流程[1].攻击方]:取移动坐标("返回")) --(self.战斗流程[1].被攻击[1].死亡,self.战斗单位[self.战斗流程[1].攻击方].显示xy,self.战斗单位[self.战斗流程[1].攻击方].初始方向)
				self.战斗单位[self.战斗流程[1].被攻击[1].编号]:设置掉血(self.战斗流程[1].被攻击[1].伤害,self.战斗流程[1].被攻击[1].伤害类型)
				if self.战斗流程[1].被攻击[1].特效[1] ~= nil and 九黎城攻击技能[self.战斗流程[1].被攻击[1].特效[1]] ~= nil then
					战斗连击单位 = self.战斗流程[1].攻击方
					if 战斗连击显示[self.战斗流程[1].攻击方] == nil then
						战斗连击显示[self.战斗流程[1].攻击方] = 0
					end
					战斗连击显示[self.战斗流程[1].攻击方] = 战斗连击显示[self.战斗流程[1].攻击方] + 1
				else
					战斗连击单位 = 0
				end
				if self.战斗流程[1].被攻击[1].死亡~=nil then--and  self.战斗单位[self.战斗流程[1].被攻击[1].编号].击退开关 then
					self.战斗单位[self.战斗流程[1].攻击方].动画:置帧率("攻击",0.19)
				end

				if self.战斗流程[1].特殊效果 then
				    self.战斗单位[self.战斗流程[1].被攻击[1].编号]:添加攻击特效(self.战斗流程[1].特殊效果)
				else
					if self.战斗流程[1].附带特效 then
						self.战斗单位[self.战斗流程[1].被攻击[1].编号]:添加攻击特效(self.战斗流程[1].附带特效)
					end
				for n=1,#self.战斗流程[1].被攻击[1].特效 do
					self.战斗单位[self.战斗流程[1].被攻击[1].编号]:添加攻击特效(self.战斗流程[1].被攻击[1].特效[n])
				end
			end
				if self.战斗流程[1].浮空目标 then
				self.战斗单位[self.战斗流程[1].浮空目标]:浮空处理()
			end
			if self.战斗单位[self.战斗流程[1].被攻击[1].编号].浮空开关 then
				self.战斗单位[self.战斗流程[1].攻击方]:浮空处理1()
			end
				if self.战斗流程[1].吸血伤害~=nil then
					self.战斗单位[self.战斗流程[1].攻击方]:设置掉血(self.战斗流程[1].吸血伤害,2)
				end
				if self.战斗流程[1].反震伤害~=nil then
					self.战斗单位[self.战斗流程[1].攻击方]:换动作("挨打",nil,true)
					self.战斗单位[self.战斗流程[1].攻击方]:设置掉血(self.战斗流程[1].反震伤害,1)
					self.战斗单位[self.战斗流程[1].攻击方]:开启击退(self.战斗流程[1].反震死亡,self.战斗单位[self.战斗流程[1].被攻击[1].编号]:取移动坐标("返回"))--self.战斗单位[self.战斗流程[1].被攻击[1].编号].初始xy.x,self.战斗单位[self.战斗流程[1].被攻击[1].编号].初始xy.y)
					self.执行流程=8
				else
					self.执行流程=17
				end
			end
		end
	elseif self.执行流程 == 3.2 and not self.战斗单位[self.战斗流程[1].被攻击[1].编号].弓弩开关 then
		if self.战斗流程[1].躲避 then
			self.战斗单位[self.战斗流程[1].被攻击[1].编号]:开启躲避()
			self.执行流程 = 7
		elseif self.战斗流程[1].假动作 then
			self.执行流程=7
		elseif self.战斗流程[1].共生 then
			for i=1,#self.战斗流程[1].共生 do
				if self.战斗单位[self.战斗流程[1].共生[i].被攻击] ~= nil then
					self.战斗单位[self.战斗流程[1].共生[i].被攻击]:设置掉血(self.战斗流程[1].共生[i].伤害,1)
					self.战斗单位[self.战斗流程[1].共生[i].被攻击]:换动作("挨打",nil,true)
					self.战斗单位[self.战斗流程[1].共生[i].被攻击]:开启击退(self.战斗流程[1].共生[i].死亡)
				end
			end
			if self.战斗流程[1].被攻击[1].死亡~=nil then
				self.战斗单位[self.战斗流程[1].攻击方].动画:置帧率("攻击",0.19)
			end
			for n=1,#self.战斗流程[1].被攻击[1].特效 do
				self.战斗单位[self.战斗流程[1].被攻击[1].编号]:添加攻击特效(self.战斗流程[1].被攻击[1].特效[n])
			end
			self.执行流程=17
		else
			self.战斗单位[self.战斗流程[1].被攻击[1].编号]:换动作(self.战斗流程[1].被攻击[1].动作, nil, true)
			self.战斗单位[self.战斗流程[1].被攻击[1].编号]:开启击退(self.战斗流程[1].被攻击[1].死亡)
			self.战斗单位[self.战斗流程[1].被攻击[1].编号]:设置掉血(self.战斗流程[1].被攻击[1].伤害, self.战斗流程[1].被攻击[1].伤害类型)
			for n = 1, #self.战斗流程[1].被攻击[1].特效 do
				self.战斗单位[self.战斗流程[1].被攻击[1].编号]:添加攻击特效(self.战斗流程[1].被攻击[1].特效[n])
			end
			if self.战斗流程[1].被攻击[1].死亡~=nil then
				self.战斗单位[self.战斗流程[1].攻击方].动画:置帧率("攻击",0.19)
			end
			if self.战斗流程[1].吸血伤害 ~= nil then
				self.战斗单位[self.战斗流程[1].攻击方]:设置掉血(self.战斗流程[1].吸血伤害, 2)
			end
			if self.战斗流程[1].反震伤害 ~= nil then
				self.战斗单位[self.战斗流程[1].攻击方]:换动作("挨打", nil, true)
				self.战斗单位[self.战斗流程[1].攻击方]:设置掉血(self.战斗流程[1].反震伤害, 1)
				self.战斗单位[self.战斗流程[1].攻击方]:开启击退(self.战斗流程[1].反震死亡)
				self.执行流程 = 8
			else
				self.执行流程 = 17
			end
		end
	elseif self.执行流程 == 4 and ((self.战斗流程[1].被攻击[1] == nil or self.战斗流程[1].被攻击[1].编号 == nil or self.战斗单位[self.战斗流程[1].被攻击[1].编号] == nil) or self.战斗单位[self.战斗流程[1].被攻击[1].编号]:取状态()) then
		if self.战斗流程[1].反击伤害 ~= nil and (self.战斗流程[1].被攻击[1] ~= nil and self.战斗流程[1].被攻击[1].编号 ~= nil and self.战斗单位[self.战斗流程[1].被攻击[1].编号] ~= nil) then
			self.战斗单位[self.战斗流程[1].被攻击[1].编号]:换动作("攻击", true)
			if self.战斗流程[1].反击死亡 ~= nil then
				self.战斗单位[self.战斗流程[1].被攻击[1].编号].动画:置帧率("攻击", 0.11)
			end
			self.执行流程 = 16
		elseif self.战斗流程[1].超反击伤害 ~= nil and self.战斗流程[1].被攻击[1] ~= nil and self.战斗流程[1].被攻击[1].编号 ~= nil and self.战斗单位[self.战斗流程[1].被攻击[1].编号] ~= nil and self.战斗流程[1].超反编号~=nil and self.战斗单位[self.战斗流程[1].超反编号]~=nil then
			local xbh = self.战斗流程[1].超反编号
			self.战斗单位[xbh]:换动作("攻击", true)
			if self.战斗流程[1].超反击死亡 ~= nil then
				self.战斗单位[xbh].动画:置帧率("攻击", 0.11)
			end
			self.执行流程 = 16
		elseif self.战斗流程[1].返回 and self.战斗流程[1].反击死亡==nil and self.战斗流程[1].超反击死亡==nil then
			self.战斗单位[self.战斗流程[1].攻击方].返回开关 = true
			self.战斗单位[self.战斗流程[1].攻击方]:换动作("返回")
			self.战斗单位[self.战斗流程[1].攻击方].移动坐标 = self.战斗单位[self.战斗流程[1].攻击方]:取移动坐标("返回")
			self.执行流程 = 5
		else
			self.执行流程 = 6
		end
	elseif self.执行流程 == 5 and self.战斗单位[self.战斗流程[1].攻击方]:取状态() then
		self.战斗单位[self.战斗流程[1].攻击方]:换方向(self.战斗单位[self.战斗流程[1].攻击方].初始方向)
		self.执行流程 = 6
	elseif self.执行流程 == 6 then
		self:流程更新二段()
	elseif self.执行流程 == 7 and self.战斗单位[self.战斗流程[1].攻击方].动作 == "待战" then
		self.执行流程 = 4
	elseif self.执行流程 == 8 and self.战斗单位[self.战斗流程[1].攻击方]:取状态() and self.战斗单位[self.战斗流程[1].被攻击[1].编号]:取状态() then
		if self.战斗流程[1].反震死亡 == nil then
			self.执行流程 = 4
		else
			self.执行流程 = 6
		end
	elseif self.执行流程 == 9 and self.战斗单位[self.战斗流程[1].攻击方]:取状态() and self.战斗单位[self.战斗流程[1].被攻击[1].编号]:取状态() then
		if self.战斗流程[1].反击死亡 == nil or self.战斗流程[1].超反击死亡==nil then
			self.战斗流程[1].反击伤害 = nil
			self.战斗流程[1].超反击伤害=nil
			self.执行流程 = 4
		else
			self.执行流程 = 6
		end
	elseif self.执行流程 == 10 and self.战斗单位[self.战斗流程[1].攻击方].移动开关 == false then -- 攻击
		self.战斗单位[self.战斗流程[1].保护数据.编号].保护 = true
		self.战斗单位[self.战斗流程[1].保护数据.编号].移动开关 = true
		self.战斗单位[self.战斗流程[1].保护数据.编号].移动坐标 = self.战斗单位[self.战斗流程[1].被攻击[1].编号]:取移动坐标("保护")
		self.战斗单位[self.战斗流程[1].保护数据.编号]:添加攻击特效("保护")
		self.执行流程 = 11
	elseif self.执行流程 == 11 and self.战斗单位[self.战斗流程[1].保护数据.编号].移动开关 == false then
		self.战斗单位[self.战斗流程[1].攻击方]:换动作("攻击", true)
		if self.战斗流程[1].被攻击[1].死亡 ~= nil then
			self.战斗单位[self.战斗流程[1].攻击方].动画:置帧率("攻击", 0.11)
		end
		self.执行流程 = 12
	elseif self.执行流程 == 12 then
		if self.战斗单位[self.战斗流程[1].攻击方]:取间隔() >= self.战斗单位[self.战斗流程[1].攻击方]:取中间() + self.战斗单位[self.战斗流程[1].攻击方].攻击帧 then
			if self.战斗单位[self.战斗流程[1].攻击方].动画.攻击方式==1 then
				self.战斗单位[self.战斗流程[1].被攻击[1].编号]:设置弓弩(
					{
						x = self.战斗单位[self.战斗流程[1].攻击方].动画.武器.攻击.x,
						y = self.战斗单位[self.战斗流程[1].攻击方].动画.武器.攻击.y + self.战斗单位[self.战斗流程[1].攻击方].动画.武器.攻击.高度 / 2
					}, self.战斗单位[self.战斗流程[1].攻击方].初始方向,
					"弓弩" ..
					(self.战斗单位[self.战斗流程[1].攻击方].武器等级 < 100 and 1 or self.战斗单位[self.战斗流程[1].攻击方].武器等级 < 130 and 2 or 3))
				self.执行流程 = 12.1
			else
				self.战斗单位[self.战斗流程[1].被攻击[1].编号]:换动作(self.战斗流程[1].被攻击[1].动作 or "挨打", nil, true)
				self.战斗单位[self.战斗流程[1].被攻击[1].编号]:开启击退(self.战斗流程[1].被攻击[1].死亡)
				self.战斗单位[self.战斗流程[1].被攻击[1].编号]:设置掉血(self.战斗流程[1].被攻击[1].伤害, self.战斗流程[1].被攻击[1].伤害类型)
				self.战斗单位[self.战斗流程[1].保护数据.编号]:换动作("挨打", nil, true)
				self.战斗单位[self.战斗流程[1].保护数据.编号]:开启击退(self.战斗流程[1].保护数据.死亡)
				self.战斗单位[self.战斗流程[1].保护数据.编号]:设置掉血(self.战斗流程[1].保护数据.伤害, self.战斗流程[1].被攻击[1].伤害类型)
				if self.战斗流程[1].被攻击[1].死亡~=nil then
					self.战斗单位[self.战斗流程[1].攻击方].动画:置帧率("攻击",0.19)
				end
				for n = 1, #self.战斗流程[1].被攻击[1].特效 do
					self.战斗单位[self.战斗流程[1].被攻击[1].编号]:添加攻击特效(self.战斗流程[1].被攻击[1].特效[n])
				end
				if self.战斗流程[1].吸血伤害 ~= nil then
					self.战斗单位[self.战斗流程[1].攻击方]:设置掉血(self.战斗流程[1].吸血伤害, 2)
				end
				self.执行流程 = 13
			end
		end
	elseif self.执行流程 == 12.1 and not self.战斗单位[self.战斗流程[1].被攻击[1].编号].弓弩开关 then
		self.战斗单位[self.战斗流程[1].被攻击[1].编号]:换动作(self.战斗流程[1].被攻击[1].动作 or "挨打", nil, true)
		self.战斗单位[self.战斗流程[1].被攻击[1].编号]:开启击退(self.战斗流程[1].被攻击[1].死亡)
		self.战斗单位[self.战斗流程[1].被攻击[1].编号]:设置掉血(self.战斗流程[1].被攻击[1].伤害, self.战斗流程[1].被攻击[1].伤害类型)
		self.战斗单位[self.战斗流程[1].保护数据.编号]:换动作("挨打", nil, true)
		self.战斗单位[self.战斗流程[1].保护数据.编号]:开启击退(self.战斗流程[1].保护数据.死亡)
		self.战斗单位[self.战斗流程[1].保护数据.编号]:设置掉血(self.战斗流程[1].保护数据.伤害, self.战斗流程[1].被攻击[1].伤害类型)
		if self.战斗流程[1].被攻击[1].死亡~=nil then
			self.战斗单位[self.战斗流程[1].攻击方].动画:置帧率("攻击",0.19)
		end
		for n = 1, #self.战斗流程[1].被攻击[1].特效 do
			self.战斗单位[self.战斗流程[1].被攻击[1].编号]:添加攻击特效(self.战斗流程[1].被攻击[1].特效[n])
		end
		if self.战斗流程[1].吸血伤害 ~= nil then
			self.战斗单位[self.战斗流程[1].攻击方]:设置掉血(self.战斗流程[1].吸血伤害, 2)
		end
		self.执行流程 = 13
	elseif self.执行流程 == 13 and self.战斗单位[self.战斗流程[1].攻击方]:取状态() and self.战斗单位[self.战斗流程[1].被攻击[1].编号]:取状态() and self.战斗单位[self.战斗流程[1].保护数据.编号]:取状态() then
		if self.战斗流程[1].保护数据.死亡 ~= nil then
			self.执行流程 = 4
		else
			self.执行流程 = 14
		end
	elseif self.执行流程 == 14 then
		self.战斗单位[self.战斗流程[1].保护数据.编号].返回开关 = true
		self.战斗单位[self.战斗流程[1].保护数据.编号]:换动作("返回")
		self.战斗单位[self.战斗流程[1].保护数据.编号].移动坐标 = self.战斗单位[self.战斗流程[1].保护数据.编号]:取移动坐标("返回")
		self.执行流程 = 15
	elseif self.执行流程 == 15 then
		self.执行流程 = 4
	elseif self.执行流程 == 16 then
		if self.战斗流程[1].超反编号~=nil and self.战斗单位[self.战斗流程[1].超反编号]~=nil then
			local xbh=self.战斗流程[1].超反编号
			if  self.战斗单位[xbh]:取间隔() >= self.战斗单位[xbh]:取中间()+self.战斗单位[xbh].攻击帧  then
				self.战斗单位[self.战斗流程[1].攻击方]:换动作("挨打",nil,true)
				self.战斗单位[self.战斗流程[1].攻击方]:设置掉血(self.战斗流程[1].超反击伤害,1)
				self.战斗单位[self.战斗流程[1].攻击方]:开启击退(self.战斗流程[1].超反击死亡)
				self.战斗单位[self.战斗流程[1].攻击方]:添加攻击特效("暴击")
				self.执行流程=9
			end
		elseif self.战斗单位[self.战斗流程[1].被攻击[1].编号]:取间隔() >= self.战斗单位[self.战斗流程[1].被攻击[1].编号]:取中间() + self.战斗单位[self.战斗流程[1].被攻击[1].编号].攻击帧 then
			self.战斗单位[self.战斗流程[1].攻击方]:换动作("挨打", nil, true)
			self.战斗单位[self.战斗流程[1].攻击方]:设置掉血(self.战斗流程[1].反击伤害, 1)
			self.战斗单位[self.战斗流程[1].攻击方]:开启击退(self.战斗流程[1].反击死亡)
			self.战斗单位[self.战斗流程[1].攻击方]:添加攻击特效("暴击")
			self.执行流程 = 9
		end
	elseif self.执行流程 == 17 and self.战斗单位[self.战斗流程[1].攻击方]:取状态() and self.战斗单位[self.战斗流程[1].攻击方].动作 ~= "攻击" then
		if self.战斗流程[1].反击伤害 ~= nil or self.战斗流程[1].超反击伤害~=nil then
			self.执行流程 = 4
		elseif self.战斗流程[1].返回 then
			self.战斗单位[self.战斗流程[1].攻击方].返回开关 = true
			self.战斗单位[self.战斗流程[1].攻击方]:换动作("返回")
			self.战斗单位[self.战斗流程[1].攻击方].移动坐标 = self.战斗单位[self.战斗流程[1].攻击方]:取移动坐标("返回")
			self.执行流程 = 5
		else
			self.执行流程 = 6
		end

		--单体封印技能开始
	elseif self.执行流程 == 50 then
		self.战斗单位[self.战斗流程[1].攻击方]:换动作("施法", true)
		if self.战斗流程[1].群封 == false then
			self:施法流程(51,self.战斗流程[1].攻击方,self.战斗流程[1].被攻击,self.战斗流程[1].被攻击[1].特效[1],false) 
		else
			if self.战斗流程[1].全屏 then
				self:施法流程(51.1,self.战斗流程[1].攻击方,self.战斗流程[1].被攻击,self.战斗流程[1].被攻击[1].特效[1],true)
			else
				self:施法流程(51.1,self.战斗流程[1].攻击方,self.战斗流程[1].被攻击,self.战斗流程[1].被攻击[1].特效[1],false)
			end
		end
	elseif self.执行流程 == 51 and (self.战斗流程[1].被攻击[1] == nil or #self.战斗单位[self.战斗流程[1].被攻击[1].编号].法术特效 == 0) then
		if self.战斗流程[1].反弹 then
			self.战斗单位[self.战斗流程[1].被攻击[1].编号]:添加特技内容("反弹")
		end
		self.执行流程 = 52
	elseif self.执行流程==51.1 and #self.战斗单位[self.战斗流程[1].被攻击[1].编号].法术特效==0  then --群封 需要测试，还有法系群秒也需要测试
		for n=1,#self.战斗流程[1].被攻击 do
			if self.战斗流程[1].被攻击[n].反弹 then
				self.战斗单位[self.战斗流程[1].被攻击[1].编号]:添加特技内容("反弹")
			end
		end
		self.执行流程=52
	elseif self.执行流程 == 52 and self.战斗单位[self.战斗流程[1].攻击方].动作 == "待战" then
		self.执行流程 = 6


    elseif self.执行流程 == 150 then
        self.战斗单位[self.战斗流程[1].攻击方]:换动作("施法", true)
        self:施法流程(151,self.战斗流程[1].攻击方,self.战斗流程[1].被攻击,self.战斗流程[1].被攻击[1].特效[1],false)
        self.战斗单位[self.战斗流程[1].被攻击[1].编号]:设置吸星大法路径(目标,成功)
    elseif self.执行流程 == 151 and (self.战斗流程[1].被攻击[1] == nil or #self.战斗单位[self.战斗流程[1].被攻击[1].编号].法术特效 == 0) then
        self.执行流程 = 152
    elseif self.执行流程 == 152 and self.战斗单位[self.战斗流程[1].攻击方].动作 == "待战" then
        self.执行流程 = 6

    elseif self.执行流程==153 and self.战斗单位[self.战斗流程[1].攻击方].动作=="待战" then
        self.战斗单位[self.战斗流程[1].攻击方]:吸星大法解除(目标)
        self.执行流程=154
    elseif self.执行流程==154 and self.战斗单位[self.战斗流程[1].攻击方].吸星大法返回 == nil then
        self.执行流程=6


		--增益技能技能开始
	elseif self.执行流程 == 53 and self.拼接特效 == nil then
		self.战斗单位[self.战斗流程[1].攻击方]:换动作("施法", true)
		if self.战斗流程[1].全屏 == true then
			self:施法流程(54.1, self.战斗流程[1].攻击方, self.战斗流程[1].被攻击, self.战斗流程[1].被攻击[1].特效[1], true)
		else
			self:施法流程(54, self.战斗流程[1].攻击方, self.战斗流程[1].被攻击, self.战斗流程[1].被攻击[1].特效[1], false)
		end
	elseif self.执行流程 == 54 and (self.战斗流程[1].被攻击[1] == nil or #self.战斗单位[self.战斗流程[1].被攻击[1].编号].法术特效 == 0) then
		for n = 1, #self.战斗流程[1].被攻击 do
			if self.战斗流程[1].被攻击[n].恢复气血 ~= nil then
				self.战斗单位[self.战斗流程[1].被攻击[n].编号]:设置掉血(self.战斗流程[1].被攻击[n].恢复气血, 2)
			end
		end
		self.执行流程 = 55
	elseif self.执行流程==54.1 and self.战斗流程[1].全屏 == true and self.拼接特效==nil then
		self.执行流程=54
	elseif self.执行流程 == 55 and (self.战斗流程[1].被攻击[1] == nil or self.战斗单位[self.战斗流程[1].被攻击[1].编号].掉血开关 == false) and self.战斗单位[self.战斗流程[1].攻击方].动作 == "待战" then
		self.执行流程 = 6
		--减益技能开始
	elseif self.执行流程 == 56 then
		self.战斗单位[self.战斗流程[1].攻击方]:换动作("施法", true)
		self:施法流程(57, self.战斗流程[1].攻击方, self.战斗流程[1].被攻击, self.战斗流程[1].被攻击[1].特效[1], false)
	elseif self.执行流程 == 57 and #self.战斗单位[self.战斗流程[1].被攻击[1].编号].法术特效 == 0 then
		if self.战斗流程[1].被攻击[1].气血 ~= nil then
			self.战斗单位[self.战斗流程[1].被攻击[1].编号]:设置掉血(self.战斗流程[1].被攻击[1].气血, 1)
			self.战斗单位[self.战斗流程[1].被攻击[1].编号]:换动作("挨打", nil, true)
			self.战斗单位[self.战斗流程[1].被攻击[1].编号]:开启击退(self.战斗流程[1].被攻击[1].死亡)
		elseif self.战斗流程[1].被攻击[1].击退 ~= nil then
			self.战斗单位[self.战斗流程[1].被攻击[1].编号]:换动作("挨打", nil, true)
			self.战斗单位[self.战斗流程[1].被攻击[1].编号]:开启击退(nil)
		end
		self.执行流程 = 58
	elseif self.执行流程 == 58 and self.战斗单位[self.战斗流程[1].被攻击[1].编号]:取状态() then
		if self.战斗流程[1].被攻击[1].特效[1] == "笑里藏刀" and self.战斗单位[self.战斗流程[1].被攻击[1].编号].单位id == 多开数据[self.当前].角色信息.id then
			多开数据[self.当前].角色信息.愤怒=self.战斗流程[1].愤怒
		end
		if self.战斗流程[1].增加气血 ~= nil then
			self.战斗单位[self.战斗流程[1].攻击方]:设置掉血(self.战斗流程[1].增加气血, 2)
		end
		self.执行流程 = 59
	elseif self.执行流程 == 59 and self.战斗单位[self.战斗流程[1].攻击方]:取状态() then
		self.执行流程 = 6

		--恢复技能，恢复道具
	elseif self.执行流程 == 60 then
		self.战斗单位[self.战斗流程[1].攻击方]:换动作("施法", true)
		if self.战斗流程[1].扣除气血 ~= nil then
			if self.战斗流程[1].全屏法术 then
				self:施法流程(63,self.战斗流程[1].攻击方,self.战斗流程[1].被攻击,self.战斗流程[1].被攻击[1].特效[1],true)
			else
				self:施法流程(63,self.战斗流程[1].攻击方,self.战斗流程[1].被攻击,self.战斗流程[1].被攻击[1].特效[1],false)
			end
		else
			if self.战斗流程[1].全屏法术 then
				self:施法流程(61, self.战斗流程[1].攻击方, self.战斗流程[1].被攻击, self.战斗流程[1].被攻击[1].特效[1], true)
			else
				self:施法流程(61, self.战斗流程[1].攻击方, self.战斗流程[1].被攻击, self.战斗流程[1].被攻击[1].特效[1], false)
			end
		end
	elseif self.执行流程 == 61 and #self.战斗单位[self.战斗流程[1].被攻击[1].编号].法术特效 == 0 and self.掉血流程 == nil then
		for n = 1, #self.战斗流程[1].被攻击 do
			if self.战斗流程[1].被攻击[n].恢复气血 ~= nil then
				self.战斗单位[self.战斗流程[1].被攻击[n].编号]:设置掉血(self.战斗流程[1].被攻击[n].恢复气血, 2)
			end
			if self.战斗流程[1].被攻击[n].恢复伤势 ~= nil then
				self.战斗单位[self.战斗流程[1].被攻击[n].编号]:同步伤势(nil,self.战斗流程[1].被攻击[n].恢复伤势)
			end
			if self.战斗流程[1].被攻击[n].复活 ~= nil then
				self.战斗单位[self.战斗流程[1].被攻击[n].编号]:换动作("待战")
				self.战斗单位[self.战斗流程[1].被攻击[n].编号].停止更新=false
			end
		end

		self.执行流程 = 62
	elseif self.执行流程 == 62 then
		local 条件通过 = #self.战斗流程[1].被攻击
		for n = 1, #self.战斗流程[1].被攻击 do
			if self.战斗单位[self.战斗流程[1].被攻击[n].编号]:取状态() then
				条件通过 = 条件通过 - 1
			end
		end
		if 条件通过 <= 0 then
			self.执行流程 = 6
		end
	elseif self.执行流程 == 63 and self.战斗单位[self.战斗流程[1].攻击方].动作 == "待战" and self.掉血流程 == nil then
		self.战斗单位[self.战斗流程[1].攻击方]:设置掉血(self.战斗流程[1].扣除气血, 1)
		self.执行流程 = 64
	elseif self.执行流程 == 64 and self.战斗单位[self.战斗流程[1].攻击方]:取状态() then
		self.执行流程 = 61

	elseif self.执行流程==108 then
		for n=1,#self.战斗流程[1].被攻击 do
			if self.战斗流程[1].被攻击[n].编号==nil or self.战斗流程[1].被攻击[n].编号==0 or self.战斗单位[self.战斗流程[1].被攻击[n].编号]==nil then
			   table.remove(self.战斗流程[1].被攻击.n)
			end
		end
		self.战斗单位[self.战斗流程[1].攻击方]:换动作("施法",true) --唧唧歪歪
		self:施法流程(109,self.战斗流程[1].攻击方,self.战斗流程[1].被攻击,self.战斗流程[1].被攻击[1].特效[1],false)
	elseif self.执行流程==109 and (#self.战斗单位[self.战斗流程[1].被攻击[1].编号].法术特效==0 or self.掉血流程==nil) then 
		for n=1,#self.战斗流程[1].被攻击 do
			if self.战斗流程[1].被攻击[n].特效[2]~=nil then
				self.战斗单位[self.战斗流程[1].被攻击[n].编号]:添加攻击特效(self.战斗流程[1].被攻击[n].特效[2])
			end
			if self.战斗流程[1].被攻击[n].躲避 then
				self.战斗单位[self.战斗流程[1].被攻击[n].编号]:添加特技内容("躲避")
			elseif self.战斗流程[1].被攻击[n].免疫 then
				self.战斗单位[self.战斗流程[1].被攻击[n].编号]:添加特技内容("免疫")
			elseif self.战斗流程[1].被攻击[n].反弹 then
				self.战斗单位[self.战斗流程[1].被攻击[n].编号]:添加特技内容("反弹")
			elseif self.战斗流程[1].被攻击[n].无穷 then
				self.战斗单位[self.战斗流程[1].被攻击[n].编号]:添加特技内容("无穷")
			else
                self.战斗单位[self.战斗流程[1].被攻击[n].编号]:设置掉血(self.战斗流程[1].被攻击[n].伤害,self.战斗流程[1].被攻击[n].类型)
			end
			self.战斗单位[self.战斗流程[1].被攻击[n].编号]:换动作("挨打",nil,true)
			self.战斗单位[self.战斗流程[1].被攻击[n].编号]:开启击退(self.战斗流程[1].被攻击[n].死亡)
			if self.战斗流程[1].反震伤害~=nil then
				self.战斗单位[self.战斗流程[1].攻击方]:换动作("挨打",nil,true)
				self.战斗单位[self.战斗流程[1].攻击方]:设置掉血(self.战斗流程[1].反震伤害,1)
				self.战斗单位[self.战斗流程[1].攻击方]:开启击退(self.战斗流程[1].反震死亡)
			end
		end
		self.执行流程=110
	elseif self.执行流程==110 and self.战斗单位[self.战斗流程[1].攻击方].动作 == "待战" and self.掉血流程 == nil then
		self.执行流程=202

		--法术流程开始
	elseif self.执行流程 == 200 then
		for n = 1, #self.战斗流程[1].被攻击 do
			if self.战斗流程[1].被攻击[n].编号 == nil or self.战斗流程[1].被攻击[n].编号 == 0 or self.战斗单位[self.战斗流程[1].被攻击[n].编号] == nil then
				table.remove(self.战斗流程[1].被攻击.n)
			end
		end
		self.战斗单位[self.战斗流程[1].攻击方]:换动作("施法", true)
		self:施法流程(201, self.战斗流程[1].攻击方, self.战斗流程[1].被攻击, self.战斗流程[1].被攻击[1].特效[1], false)
	elseif self.执行流程 == 201 and (#self.战斗单位[self.战斗流程[1].被攻击[1].编号].法术特效 == 0 or self.掉血流程 == nil) then --and  self.战斗单位[self.战斗流程[1].攻击方].动作=="待战"
		if self.战斗流程[1].共生 then
			for n=1,#self.战斗流程[1].被攻击 do
		    	if self.战斗流程[1].被攻击[n].特效[2]~=nil then
					self.战斗单位[self.战斗流程[1].被攻击[n].编号]:添加攻击特效(self.战斗流程[1].被攻击[n].特效[2])
				end
		    end
		    for i=1,#self.战斗流程[1].共生 do
				if self.战斗单位[self.战斗流程[1].共生[i].被攻击] ~= nil then
					self.战斗单位[self.战斗流程[1].共生[i].被攻击]:设置掉血(self.战斗流程[1].共生[i].伤害,1)
					self.战斗单位[self.战斗流程[1].共生[i].被攻击]:换动作("挨打",nil,true)
					self.战斗单位[self.战斗流程[1].共生[i].被攻击]:开启击退(self.战斗流程[1].共生[i].死亡)
				end
			end
		else
			for n = 1, #self.战斗流程[1].被攻击 do
				if self.战斗流程[1].被攻击[n].特效[2] ~= nil then
					self.战斗单位[self.战斗流程[1].被攻击[n].编号]:添加攻击特效(self.战斗流程[1].被攻击[n].特效[2])
				end
				if self.战斗流程[1].被攻击[n].躲避 then
					self.战斗单位[self.战斗流程[1].被攻击[n].编号]:添加特技内容("躲避")
				elseif self.战斗流程[1].被攻击[n].免疫 then
					self.战斗单位[self.战斗流程[1].被攻击[n].编号]:添加特技内容("免疫")
				elseif self.战斗流程[1].被攻击[n].反弹 then
					self.战斗单位[self.战斗流程[1].被攻击[n].编号]:添加特技内容("反弹")
				elseif self.战斗流程[1].被攻击[n].无穷 then
					self.战斗单位[self.战斗流程[1].被攻击[n].编号]:添加特技内容("无穷")
				else
					self.战斗单位[self.战斗流程[1].被攻击[n].编号]:设置掉血(self.战斗流程[1].被攻击[n].伤害, self.战斗流程[1].被攻击[n].类型)
				end
				self.战斗单位[self.战斗流程[1].被攻击[n].编号]:换动作("挨打", nil, true)
				self.战斗单位[self.战斗流程[1].被攻击[n].编号]:开启击退(self.战斗流程[1].被攻击[n].死亡)
				if self.战斗流程[1].反震伤害~=nil then
					self.战斗单位[self.战斗流程[1].攻击方]:换动作("挨打",nil,true)
					self.战斗单位[self.战斗流程[1].攻击方]:设置掉血(self.战斗流程[1].反震伤害,1)
					self.战斗单位[self.战斗流程[1].攻击方]:开启击退(self.战斗流程[1].反震死亡)
				end
			end
		end
		self.执行流程 = 202
	elseif self.执行流程 == 202 then
		local 条件通过 = #self.战斗流程[1].被攻击
		for n = 1, #self.战斗流程[1].被攻击 do
			if self.战斗单位[self.战斗流程[1].被攻击[n].编号]:取状态() then
				条件通过 = 条件通过 - 1
			end
		end
		if 条件通过 <= 0 and self.拼接特效==nil then
			self.执行流程 = 6
		end
		--特殊法术流程
	elseif self.执行流程 == 205 and self.拼接特效 == nil then
		self.战斗单位[self.战斗流程[1].攻击方]:换动作("施法", true)
		self:施法流程(206, self.战斗流程[1].攻击方, self.战斗流程[1].被攻击, self.战斗流程[1].被攻击[1].特效[1], true)
	elseif self.执行流程 == 206 and #self.战斗单位[self.战斗流程[1].被攻击[1].编号].法术特效 == 0 and self.掉血流程 == nil then
		self.执行流程 = 201
	elseif self.执行流程==208 then
		self.战斗单位[self.战斗流程[1].攻击方]:换动作("施法",true)
		self:施法流程(209,self.战斗流程[1].攻击方,self.战斗流程[1].被攻击,self.战斗流程[1].被攻击[1].特效[1],false)
	elseif self.执行流程==209 and #self.战斗单位[self.战斗流程[1].被攻击[1].编号].法术特效==0 and self.掉血流程==nil then
		self.执行流程=6

	elseif self.执行流程==210 then--超级神鸡
		self.战斗单位[self.战斗流程[1].攻击方]:换动作("施法",true)
		self.执行流程=211
	elseif self.执行流程==211 and self.战斗单位[self.战斗流程[1].攻击方].动作=="待战" then
		self.执行流程=6	
		--抓捕开始
	elseif self.执行流程 == 300 then
		self.战斗单位[self.战斗流程[1].攻击方]:设置抓捕动画(self.战斗流程[1].被攻击[1].编号, self.战斗流程[1].宝宝, self.战斗流程[1].捕捉成功, self.战斗流程[1].名称)
		self.执行流程 = 301
	elseif self.执行流程 == 301 and self.战斗单位[self.战斗流程[1].攻击方].抓捕开关 == false then
		self.执行流程 = 6

	elseif self.执行流程==311 then --月光
		self:施法流程(201.2,self.战斗流程[1].攻击方,self.战斗流程[1].被攻击,self.战斗流程[1].被攻击[1].特效[1],false)
	elseif self.执行流程==201.2 then --and  self.战斗单位[self.战斗流程[1].攻击方].动作=="待战"
		if self.战斗流程[1].共生 then
		    for n=1,#self.战斗流程[1].被攻击 do
		    	if self.战斗流程[1].被攻击[n].特效[2]~=nil then
					self.战斗单位[self.战斗流程[1].被攻击[n].编号]:添加攻击特效(self.战斗流程[1].被攻击[n].特效[2])
				end
		    end
		    for i=1,#self.战斗流程[1].共生 do
				if self.战斗单位[self.战斗流程[1].共生[i].被攻击] ~= nil then
					self.战斗单位[self.战斗流程[1].共生[i].被攻击]:设置掉血(self.战斗流程[1].共生[i].伤害,1)
					self.战斗单位[self.战斗流程[1].共生[i].被攻击]:换动作("挨打",nil,true)
					self.战斗单位[self.战斗流程[1].共生[i].被攻击]:开启击退(self.战斗流程[1].共生[i].死亡)
				end
			end
		else
			for n=1,#self.战斗流程[1].被攻击 do
				if self.战斗流程[1].被攻击[n].特效[2]~=nil then
					self.战斗单位[self.战斗流程[1].被攻击[n].编号]:添加攻击特效(self.战斗流程[1].被攻击[n].特效[2])
				end
				if self.战斗流程[1].被攻击[n].躲避 then
					self.战斗单位[self.战斗流程[1].被攻击[n].编号]:添加特技内容("躲避")
				elseif self.战斗流程[1].被攻击[n].免疫 then
					self.战斗单位[self.战斗流程[1].被攻击[n].编号]:添加特技内容("免疫")
				elseif self.战斗流程[1].被攻击[n].反弹 then
					self.战斗单位[self.战斗流程[1].被攻击[n].编号]:添加特技内容("反弹")
				elseif self.战斗流程[1].被攻击[n].无穷 then
						self.战斗单位[self.战斗流程[1].被攻击[n].编号]:添加特技内容("无穷")
				else
	                self.战斗单位[self.战斗流程[1].被攻击[n].编号]:设置掉血(self.战斗流程[1].被攻击[n].伤害,self.战斗流程[1].被攻击[n].类型)
				end
				self.战斗单位[self.战斗流程[1].被攻击[n].编号]:换动作("挨打",nil,true)
				self.战斗单位[self.战斗流程[1].被攻击[n].编号]:开启击退(self.战斗流程[1].被攻击[n].死亡)
				if self.战斗流程[1].反震伤害~=nil then
					self.战斗单位[self.战斗流程[1].攻击方]:换动作("挨打",nil,true)
					self.战斗单位[self.战斗流程[1].攻击方]:设置掉血(self.战斗流程[1].反震伤害,1)
					self.战斗单位[self.战斗流程[1].攻击方]:开启击退(self.战斗流程[1].反震死亡)
				end
			end
		end
		self.执行流程=6

		--自爆
	elseif self.执行流程 == 500 then
		self.战斗单位[self.战斗流程[1].攻击方]:设置掉血(self.战斗流程[1].伤害, 1)
		self.执行流程 = 501
	elseif self.执行流程 == 501 and self.战斗单位[self.战斗流程[1].攻击方]:取状态() then
		self.战斗单位[self.战斗流程[1].攻击方]:换动作("施法", true)
		self:施法流程(502, self.战斗流程[1].攻击方, self.战斗流程[1].被攻击, self.战斗流程[1].被攻击[1].特效[1], false)
	elseif self.执行流程 == 502 and #self.战斗单位[self.战斗流程[1].被攻击[1].编号].法术特效 == 0 then
		for n = 1, #self.战斗流程[1].被攻击 do
			self.战斗单位[self.战斗流程[1].被攻击[n].编号]:设置掉血(self.战斗流程[1].被攻击[n].伤害, self.战斗流程[1].被攻击[n].类型)
			self.战斗单位[self.战斗流程[1].被攻击[n].编号]:换动作("挨打", nil, true)
			self.战斗单位[self.战斗流程[1].被攻击[n].编号]:开启击退(self.战斗流程[1].被攻击[n].死亡)
		end
		self.执行流程 = 503
	elseif self.执行流程 == 503 then
		local 条件通过 = #self.战斗流程[1].被攻击
		for n = 1, #self.战斗流程[1].被攻击 do
			if self.战斗单位[self.战斗流程[1].被攻击[n].编号]:取状态() then
				条件通过 = 条件通过 - 1
			end
		end
		if 条件通过 <= 0 then
			self.战斗单位[self.战斗流程[1].攻击方].是否显示=false
			self.执行流程=6
		end
	elseif self.执行流程 == 900 then
		if self.战斗流程[1].id == 多开数据[当前 or self and self.当前].角色信息.id or self.战斗流程[1].id == 0 then
			多开数据[当前 or self and self.当前].__UI弹出.提示框:打开(self.战斗流程[1].内容)
		end
		self.执行流程 = 6
		--系统提示
	elseif self.执行流程 == 901 then
		if self.战斗流程[1].id == 多开数据[当前 or self and self.当前].角色信息.id or self.战斗流程[1].id == 0 then
			多开数据[self.当前].__UI界面.界面层.左下角.聊天文本:添加文本(self.战斗流程[1].内容, "xt")
		end
		self.执行流程 = 6

		--召唤计算
	elseif self.执行流程 == 600 then
		self.战斗单位[self.战斗流程[1].被攻击[1].编号] = __战斗单位(self.当前)
		self.战斗单位[self.战斗流程[1].被攻击[1].编号]:创建单位(self.战斗流程[1].被攻击[1].数据, self.战斗流程[1].被攻击[1].队伍, self.战斗流程[1].被攻击[1].编号)
		self.执行流程 = 6
		--逃跑
	elseif self.执行流程 == 601 then
		self.战斗单位[self.战斗流程[1].攻击方].方向 = self.战斗单位[self.战斗流程[1].攻击方].逃跑方向
		self.战斗单位[self.战斗流程[1].攻击方]:换动作("返回")
		-- self.战斗单位[self.战斗流程[1].攻击方].逃跑开关=true
		--if self.战斗流程[1].喊话 ~= nil then
		--self.战斗单位[self.战斗流程[1].攻击方].喊话:写入(self.战斗单位[self.战斗流程[1].攻击方],self.战斗单位[self.战斗流程[1].攻击方].动画.动画,self.战斗流程[1].喊话)
		--end
		self.战斗流程[1].等待计时 = os.time()
		self.执行流程 = 602
	elseif self.执行流程 == 602 and os.time() - self.战斗流程[1].等待计时 >= 3 then
		if self.战斗流程[1].成功 == false then
			if self.当前 == 多开数据.当前 then
				多开数据[self.当前].__主控:播放特效音乐(取音效("逃跑失败"))
			end
			self.执行流程 = 603
		else
			if self.当前 == 多开数据.当前 then
				多开数据[self.当前].__主控:播放特效音乐(取音效("逃跑成功"))
			end
			self.执行流程 = 605
			self.战斗单位[self.战斗流程[1].攻击方].逃跑开关 = true
			if self.战斗流程[1].追加 ~= nil then
				self.战斗单位[self.战斗流程[1].追加].方向 = self.战斗单位[self.战斗流程[1].追加].逃跑方向
				self.战斗单位[self.战斗流程[1].追加]:换动作("返回")
				self.战斗单位[self.战斗流程[1].追加].逃跑开关 = true
			end
		end
	elseif self.执行流程 == 603 then
		self.战斗流程[1].等待计时 = os.time()
		self.战斗流程[1].初始方向 = self.战斗单位[self.战斗流程[1].攻击方].逃跑方向
		self.战斗单位[self.战斗流程[1].攻击方]:换动作("待战")
		self.执行流程 = 604
	elseif self.执行流程 == 604 then
		self.战斗流程[1].初始方向 = self.战斗流程[1].初始方向 + 1
		if self.战斗流程[1].初始方向 >= 4 then self.战斗流程[1].初始方向 = 0 end
		self.战斗单位[self.战斗流程[1].攻击方].方向 = self.战斗流程[1].初始方向
		self.战斗单位[self.战斗流程[1].攻击方]:换动作("待战")
		if os.time() - self.战斗流程[1].等待计时 >= 1 then
			self.战斗单位[self.战斗流程[1].攻击方].方向 = self.战斗单位[self.战斗流程[1].攻击方].初始方向
			self.战斗单位[self.战斗流程[1].攻击方]:换动作("待战")
			self.执行流程 = 6
		end
	elseif self.执行流程 == 605 then
		self.战斗单位[self.战斗流程[1].攻击方].显示xy.x = self.战斗单位[self.战斗流程[1].攻击方].显示xy.x + self.战斗单位[self.战斗流程[1].攻击方].逃跑坐标
		self.战斗单位[self.战斗流程[1].攻击方].显示xy.y = self.战斗单位[self.战斗流程[1].攻击方].显示xy.y + self.战斗单位[self.战斗流程[1].攻击方].逃跑坐标
		if self.战斗流程[1].追加 == nil then
			if self.战斗单位[self.战斗流程[1].攻击方].显示xy:取距离(self.战斗单位[self.战斗流程[1].攻击方].初始xy.x, self.战斗单位[self.战斗流程[1].攻击方].初始xy.y) >= 500 then
				self.执行流程 = 606
			end
		else
			self.战斗单位[self.战斗流程[1].追加].显示xy.x = self.战斗单位[self.战斗流程[1].追加].显示xy.x + self.战斗单位[self.战斗流程[1].追加].逃跑坐标
			self.战斗单位[self.战斗流程[1].追加].显示xy.y = self.战斗单位[self.战斗流程[1].追加].显示xy.y + self.战斗单位[self.战斗流程[1].追加].逃跑坐标
			if self.战斗单位[self.战斗流程[1].攻击方].显示xy:取距离(self.战斗单位[self.战斗流程[1].攻击方].初始xy.x, self.战斗单位[self.战斗流程[1].攻击方].初始xy.y) >= 500 and self.战斗单位[self.战斗流程[1].追加].显示xy:取距离(self.战斗单位[self.战斗流程[1].追加].初始xy.x, self.战斗单位[self.战斗流程[1].追加].初始xy.y) >= 500 then
				self.执行流程 = 606
			end
		end
	elseif self.执行流程 == 606 then
		self.战斗单位[self.战斗流程[1].攻击方].是否显示 = false
		if self.战斗流程[1].结束 and 多开数据[当前 or self and self.当前].角色信息.id == self.战斗流程[1].id then
			-- 发送数据(当前 or self and self.当前, 5506)
			self.执行流程 = 999999
		else
			self.执行流程 = 6
		end

		--怪物召唤
	elseif self.执行流程 == 607 then
		self.战斗单位[self.战斗流程[1].被攻击[1].编号] = __战斗单位(self.当前)
		self.战斗单位[self.战斗流程[1].被攻击[1].编号]:创建单位(self.战斗流程[1].被攻击[1].数据, self.战斗流程[1].被攻击[1].队伍, self.战斗流程[1].被攻击[1].编号)
		self.战斗单位[self.战斗流程[1].被攻击[1].编号].是否显示 = false
		self.战斗单位[self.战斗流程[1].攻击方]:换动作("施法", true)
		self:添加战斗提醒文字(self.战斗单位[self.战斗流程[1].攻击方].名称 .. "使用了召唤")
		self.执行流程 = 608
	elseif self.执行流程 == 608 then
		if self.战斗单位[self.战斗流程[1].攻击方].动作 == "待战" then
			self.战斗单位[self.战斗流程[1].被攻击[1].编号].是否显示 = true
			self.执行流程 = 609
			self.战斗流程[1].延时等待 = os.time()
		end
	elseif self.执行流程 == 609 and os.time() - self.战斗流程[1].延时等待 >= 1 then
		self.执行流程 = 6


	elseif self.执行流程 == 607.1 then
		for i=1,#self.战斗流程[1].被攻击 do
			self.战斗单位[self.战斗流程[1].被攻击[i].编号] = __战斗单位(self.当前)
			self.战斗单位[self.战斗流程[1].被攻击[i].编号]:创建单位(self.战斗流程[1].被攻击[i].数据, self.战斗流程[1].被攻击[i].队伍, self.战斗流程[1].被攻击[i].编号)
			self.战斗单位[self.战斗流程[1].被攻击[i].编号].是否显示 = false
		end
		self.战斗单位[self.战斗流程[1].攻击方]:换动作("施法", true)
		self:添加战斗提醒文字(self.战斗单位[self.战斗流程[1].攻击方].名称 .. "使用了召唤")
		self.执行流程 = 608.1
	elseif self.执行流程 == 608.1 then
		if self.战斗单位[self.战斗流程[1].攻击方].动作 == "待战" then
			for i=1,#self.战斗流程[1].被攻击 do
				self.战斗单位[self.战斗流程[1].被攻击[i].编号].是否显示 = true
			end
			self.执行流程 = 609.1
			self.战斗流程[1].延时等待 = os.time()
		end
	elseif self.执行流程 == 609.1 and os.time() - self.战斗流程[1].延时等待 >= 1 then
		self.执行流程 = 6
	elseif self.执行流程 == 610 then
		self.战斗单位[self.战斗流程[1].攻击方].状态特效[self.战斗流程[1].状态] = nil
		self.执行流程 = 6

		--飞镖
	elseif self.执行流程 == 611 then
		if #self.战斗流程[1].被攻击 == 0 then
			self.执行流程 = 6
		else
			self.战斗单位[self.战斗流程[1].攻击方]:换动作("施法", true)
			self:施法流程(612, self.战斗流程[1].攻击方, self.战斗流程[1].被攻击, "飞镖", false)
		end
	elseif self.执行流程 == 612 then
		local 结束 = true
		for n = 1, #self.战斗流程[1].被攻击 do
			if self.战斗单位[self.战斗流程[1].被攻击[n].编号]:取状态() == false then
				结束 = false
			end
		end
		if 结束 then
			self.执行流程 = 6
		end
	elseif self.执行流程 == 613 then
		if #self.战斗流程[1].被攻击 == 0 then
			self.执行流程 = 6
		else
			for n = 1, #self.战斗流程[1].被攻击 do
				self.战斗单位[self.战斗流程[1].被攻击[n].编号]:设置掉血(self.战斗流程[1].被攻击[n].伤害, 1)
				self.战斗单位[self.战斗流程[1].被攻击[n].编号]:开启击退(self.战斗流程[1].被攻击[n].死亡, 1)
			end
			self.执行流程 = 612
		end

	elseif self.执行流程==621 then
		if self.战斗单位[self.战斗流程[1].攻击方].动作=="待战" then
			for i=1,#self.战斗流程[1].被攻击 do
				self.战斗单位[self.战斗流程[1].被攻击[i].编号].是否显示=true
			end
			self.执行流程=622
			self.战斗流程[1].延时等待=os.time()
		end
	elseif self.执行流程==622 and os.time()-self.战斗流程[1].延时等待>=1 then
		self.执行流程=6


	elseif self.执行流程==625 and self.战斗单位[self.战斗流程[1].攻击方].动作=="待战" then
    	self.战斗单位[self.战斗流程[1].攻击方].是否显示=false
    	self.执行流程=6

	elseif self.执行流程==400 and self.战斗单位[self.战斗流程[1].被攻击[1].编号]:取状态() and self.战斗单位[self.战斗流程[1].攻击方]:取状态()  then
    	self.执行流程=401
    	self.战斗流程[1].延时等待=os.time()
    elseif self.执行流程==401 and os.time()-self.战斗流程[1].延时等待>=2  then -- 攻击
    	self.战斗流程[1].延时等待=nil
		self.战斗单位[self.战斗流程[1].被攻击[1].编号]:添加攻击特效("惊天动地")
		self.战斗单位[self.战斗流程[1].攻击方].移动开关=true
		self.战斗单位[self.战斗流程[1].攻击方].移动坐标.x,self.战斗单位[self.战斗流程[1].攻击方].移动坐标.y=440,-28
        self.执行流程=402
    elseif self.执行流程==402 and self.战斗单位[self.战斗流程[1].攻击方].移动开关==false then
    	self.战斗单位[self.战斗流程[1].攻击方].是否显示=false
    	self.战斗单位[self.战斗流程[1].攻击方].移动开关=true
		self.战斗单位[self.战斗流程[1].攻击方].移动坐标.x,self.战斗单位[self.战斗流程[1].攻击方].移动坐标.y=self.战斗单位[self.战斗流程[1].被攻击[1].编号]:取移动坐标("挨打")
    	self.执行流程=403
    	self.战斗流程[1].延时等待=os.time()

    elseif self.执行流程==403 and self.战斗单位[self.战斗流程[1].攻击方].移动开关==false and os.time()-self.战斗流程[1].延时等待>=1 then
    	self.战斗流程[1].延时等待=nil
    	self.战斗单位[self.战斗流程[1].攻击方].是否显示=true
    	self.战斗单位[self.战斗流程[1].攻击方]:换动作("攻击",true)
		if self.战斗流程[1].被攻击[1].死亡~=nil then
			self.战斗单位[self.战斗流程[1].攻击方].动画:置帧率("攻击",0.11)
		end
		self.执行流程=404
	elseif self.执行流程==404 then
		if self.战斗单位[self.战斗流程[1].攻击方]:取间隔() >= self.战斗单位[self.战斗流程[1].攻击方]:取中间()+self.战斗单位[self.战斗流程[1].攻击方].攻击帧  then
			if self.战斗单位[self.战斗流程[1].攻击方].动画.攻击方式==1 then
				self.战斗单位[self.战斗流程[1].被攻击[1].编号]:设置弓弩(
						{
							x = self.战斗单位[self.战斗流程[1].攻击方].动画.武器.攻击.x,
							y = self.战斗单位[self.战斗流程[1].攻击方].动画.武器.攻击.y + self.战斗单位[self.战斗流程[1].攻击方].动画.武器.攻击.高度 / 2
						}, self.战斗单位[self.战斗流程[1].攻击方].初始方向,
						"弓弩" ..
						(self.战斗单位[self.战斗流程[1].攻击方].武器等级 < 100 and 1 or self.战斗单位[self.战斗流程[1].攻击方].武器等级 < 130 and 2 or 3))
			end
			self.执行流程=405
		end
	elseif self.执行流程==405 then
		for n=1,#self.战斗流程[1].被攻击 do
			if self.战斗流程[1].被攻击[n].编号==nil or self.战斗流程[1].被攻击[n].编号==0 or self.战斗单位[self.战斗流程[1].被攻击[n].编号]==nil then
			   table.remove(self.战斗流程[1].被攻击.n)
			end
		end
		self.执行流程=406
	elseif self.执行流程==406 then
		for n=1,#self.战斗流程[1].被攻击 do
			self.战斗单位[self.战斗流程[1].被攻击[n].编号]:设置掉血(self.战斗流程[1].被攻击[n].伤害,self.战斗流程[1].被攻击[n].类型)
			self.战斗单位[self.战斗流程[1].被攻击[n].编号]:换动作("挨打",nil,true)
			self.战斗单位[self.战斗流程[1].被攻击[n].编号]:开启击退(self.战斗流程[1].被攻击[n].死亡)
		end
		self.执行流程=407
    elseif self.执行流程==407 and ((self.战斗流程[1].被攻击[1]==nil or self.战斗流程[1].被攻击[1].编号==nil or self.战斗单位[self.战斗流程[1].被攻击[1].编号]==nil) or self.战斗单位[self.战斗流程[1].被攻击[1].编号]:取状态()) then
        self.战斗单位[self.战斗流程[1].攻击方].返回开关=true
		self.战斗单位[self.战斗流程[1].攻击方].移动坐标.x,self.战斗单位[self.战斗流程[1].攻击方].移动坐标.y=self.战斗单位[self.战斗流程[1].攻击方]:取移动坐标("返回")
		local 条件通过=#self.战斗流程[1].被攻击
	 	for n=1,#self.战斗流程[1].被攻击 do
			if self.战斗单位[self.战斗流程[1].被攻击[n].编号]:取状态() then
				条件通过=条件通过-1
			else
				条件通过=条件通过-1
			end
		end
		if 条件通过<=0 then
			self.执行流程=6
		end

	elseif self.执行流程==601.1 then --缩地尺/水遁/
		self.战斗单位[self.战斗流程[1].攻击方]:换动作("施法",true)
		self:施法流程(601.2,self.战斗流程[1].攻击方,self.战斗流程[1].被攻击,self.战斗流程[1].特效,false)
	elseif self.执行流程==601.2 and #self.战斗单位[self.战斗流程[1].被攻击[1].编号].法术特效==0 then
		self.战斗流程[1].等待计时=os.time()
		self.执行流程=601.3
	elseif self.执行流程==601.3 and os.time()-self.战斗流程[1].等待计时>=2 then
		if self.战斗流程[1].成功 then
			self.战斗单位[self.战斗流程[1].攻击方].是否显示=false
			if self.战斗流程[1].追加~=nil then
			    self.战斗单位[self.战斗流程[1].追加].是否显示=false
			end
		end
		self.执行流程=601.4
	elseif self.执行流程==601.4 then
		if self.战斗流程[1].结束 and 引擎.场景.队伍[1].id==self.战斗流程[1].id then
			-- 发送数据(当前 or self.当前,5506)
			self.执行流程=999999
		else
			self.执行流程=6
		end
		--变形？
	elseif self.执行流程 == 707 then
		self:添加战斗提醒文字(self.战斗单位[self.战斗流程[1].攻击方].数据.名称 .. "触发了动物套效果")
		self.战斗单位[self.战斗流程[1].攻击方]:换动作("施法", true)
		self.执行流程 = 708
	elseif self.执行流程 == 708 and self.战斗单位[self.战斗流程[1].攻击方].动作 == "待战" then
		self.战斗单位[self.战斗流程[1].攻击方]:更改模型(self.战斗流程[1].参数)
		self.执行流程 = 6
	elseif self.执行流程==709 and self.战斗单位[self.战斗流程[1].攻击方].动作=="待战" then --八戒上身
    	self.战斗单位[self.战斗流程[1].被攻击]:添加法术特效("召唤")
    	self.战斗单位[self.战斗流程[1].被攻击]:更改模型(self.战斗流程[1].参数,1)
        self.执行流程=6
    elseif self.执行流程==710 and self.战斗单位[self.战斗流程[1].攻击方].动作=="待战" then --破变身
    	self.战斗单位[self.战斗流程[1].被攻击]:更改人物模型(self.战斗流程[1].参数.模型,"角色",self.战斗流程[1].参数.染色方案,self.战斗流程[1].参数.染色组,self.战斗流程[1].参数.变异,self.战斗流程[1].参数.武器)
    	self.执行流程=6
    elseif self.执行流程==711 then --破变身
    	self.战斗单位[self.战斗流程[1].被攻击]:更改人物模型(self.战斗流程[1].参数.模型,self.战斗流程[1].参数.类型,self.战斗流程[1].参数.染色方案,self.战斗流程[1].参数.染色组,self.战斗流程[1].参数.变异,self.战斗流程[1].参数.武器)
    	self.执行流程=6

	elseif self.执行流程==800 and self.战斗单位[self.战斗流程[1].攻击方].动作=="待战" then --连破
        self.战斗单位[self.战斗流程[1].攻击方]:换动作("施法",true)
        self:添加战斗提醒文字(self.战斗单位[self.战斗流程[1].攻击方].名称.."使用了连破")
        self:施法流程(801,self.战斗流程[1].攻击方,self.战斗流程[1].被攻击,"水清诀",false)
    elseif self.执行流程==801 and self.战斗单位[self.战斗流程[1].攻击方].动作=="待战" then
        self.执行流程=6

	elseif self.执行流程==802 and self.战斗单位[self.战斗流程[1].攻击方].动作=="待战" then --披坚执锐
        self.战斗单位[self.战斗流程[1].攻击方]:换动作("施法",true)
        self:添加战斗提醒文字(self.战斗单位[self.战斗流程[1].攻击方].名称.."使用了披坚执锐")
        self:施法流程(801,self.战斗流程[1].攻击方,self.战斗流程[1].攻击方,"披坚执锐",false)

	elseif self.执行流程==903 then --护盾 风灵 -- 无需动作添加
        self.战斗单位[self.战斗流程[1].被攻击[1].编号]:增加状态(self.战斗流程[1].被攻击[1].增加状态)
        self.执行流程=6
	elseif self.执行流程==953 then --护盾 风灵 -- 无需动作添加
		for i,v in pairs(self.战斗流程[1].被攻击) do
       	 	self.战斗单位[self.战斗流程[1].被攻击[i].编号]:增加状态(self.战斗流程[1].被攻击[i].增加状态)
		end
        self.执行流程=6
    elseif self.执行流程==905 then --风卷残云
    	self:添加战斗提醒文字(self.战斗单位[self.战斗流程[1].攻击方].名称.."使用了风卷残云")
    	self.战斗单位[self.战斗流程[1].攻击方]:换动作("施法",true)
    	self.执行流程=906
    elseif self.执行流程==906 and self.战斗单位[self.战斗流程[1].攻击方].动作=="待战" and self.拼接特效==nil then
    	self:添加战斗提醒文字(self.战斗单位[self.战斗流程[1].攻击方].名称.."使用了落叶萧萧")
		self.战斗单位[self.战斗流程[1].攻击方]:换动作("施法",true)
	    self:施法流程(206.1,self.战斗流程[1].攻击方,self.战斗流程[1].被攻击,"落叶萧萧",true)

	elseif self.执行流程==907 then --施法挨打但不掉血  不拼接
		self.战斗单位[self.战斗流程[1].攻击方]:换动作("施法",true)
		self:施法流程(908,self.战斗流程[1].攻击方,self.战斗流程[1].被攻击,self.战斗流程[1].被攻击[1].特效[1],false)
	elseif self.执行流程==908 and (#self.战斗单位[self.战斗流程[1].被攻击[1].编号].法术特效==0 or self.掉血流程==nil) then
		if self.战斗流程[1].成功 then
			for n=1,#self.战斗流程[1].被攻击 do
				self.战斗单位[self.战斗流程[1].被攻击[n].编号]:换动作("挨打",nil,true)
				self.战斗单位[self.战斗流程[1].被攻击[n].编号]:开启击退(self.战斗流程[1].被攻击[n].死亡)
			end
		end
		self.执行流程=202

	elseif self.执行流程==909 and self.拼接特效==nil then --拼接 瘴气
		self.战斗单位[self.战斗流程[1].攻击方]:换动作("施法",true)
	 	self:施法流程(910,self.战斗流程[1].攻击方,self.战斗流程[1].被攻击,self.战斗流程[1].被攻击[1].特效[1],true)
	elseif self.执行流程==910 and #self.战斗单位[self.战斗流程[1].被攻击[1].编号].法术特效==0 and self.掉血流程==nil then
		for n=1,#self.战斗流程[1].被攻击 do
			self.战斗单位[self.战斗流程[1].被攻击[n].编号]:换动作("挨打",nil,true)
			self.战斗单位[self.战斗流程[1].被攻击[n].编号]:开启击退(self.战斗流程[1].被攻击[n].死亡)
		end
		self.执行流程=202

	elseif self.执行流程==911 then --琴音三叠
        self.战斗单位[self.战斗流程[1].攻击方]:换动作("施法",true)
        self.执行流程=912
        self.战斗流程[1].延时等待=os.clock()
    elseif self.执行流程==912 and self.战斗单位[self.战斗流程[1].攻击方].动作=="待战" then
        self.战斗单位[self.战斗流程[1].被攻击[1].编号]:添加法术特效(self.战斗流程[1].被攻击[1].特效[1])
        self.执行流程=912.1
    elseif self.执行流程==912.1 and os.clock()-self.战斗流程[1].延时等待>=0.7  then
        self.战斗单位[self.战斗流程[1].被攻击[1].编号]:换动作("挨打",nil,true)
        self.战斗单位[self.战斗流程[1].被攻击[1].编号]:设置掉血(self.战斗流程[1].被攻击[1].伤害,self.战斗流程[1].被攻击[1].类型)
        self.战斗单位[self.战斗流程[1].被攻击[1].编号]:开启击退(self.战斗流程[1].被攻击[1].死亡)
        self.执行流程=913
        self.战斗流程[1].延时等待=os.clock()
    elseif self.执行流程==913  and os.clock()-self.战斗流程[1].延时等待>=0.2 then
        self.战斗单位[self.战斗流程[1].被攻击[2].被攻击]:添加法术特效(self.战斗流程[1].被攻击[2].特效[1])
        self.执行流程=913.1
        self.战斗流程[1].延时等待=os.clock()
    elseif self.执行流程==913.1  and os.clock()-self.战斗流程[1].延时等待>=0.2 then
        self.战斗单位[self.战斗流程[1].被攻击[2].被攻击]:换动作("挨打",nil,true)
        self.战斗单位[self.战斗流程[1].被攻击[2].被攻击]:设置掉血(self.战斗流程[1].被攻击[2].伤害,self.战斗流程[1].被攻击[2].类型)
        self.战斗单位[self.战斗流程[1].被攻击[2].被攻击]:开启击退(self.战斗流程[1].被攻击[2].死亡)
        self.执行流程=914
        self.战斗流程[1].延时等待=os.clock()
    elseif self.执行流程==914  and os.clock()-self.战斗流程[1].延时等待>=1  and self.战斗单位[self.战斗流程[1].被攻击[1].编号]:取状态() then
        self.战斗单位[self.战斗流程[1].被攻击[3].被攻击]:添加法术特效(self.战斗流程[1].被攻击[3].特效[1])
        self.执行流程=914.1
    elseif self.执行流程==914.1  and os.clock()-self.战斗流程[1].延时等待>=1.5 then
        self.战斗单位[self.战斗流程[1].被攻击[3].被攻击]:换动作("挨打",nil,true)
        self.战斗单位[self.战斗流程[1].被攻击[3].被攻击]:设置掉血(self.战斗流程[1].被攻击[3].伤害,self.战斗流程[1].被攻击[3].类型)
        self.战斗单位[self.战斗流程[1].被攻击[3].被攻击]:开启击退(self.战斗流程[1].被攻击[3].死亡)
        self.执行流程=202

    elseif self.执行流程==915 then --移形换影
		self.战斗单位[self.战斗流程[1].攻击方]:换动作("施法",true)
		self.战斗单位[self.战斗流程[1].攻击方]:添加法术特效("五雷咒")
		self:施法流程(916,self.战斗流程[1].攻击方,self.战斗流程[1].被攻击,self.战斗流程[1].被攻击[1].特效[1],false)
    elseif self.执行流程==916 and #self.战斗单位[self.战斗流程[1].被攻击[1].编号].法术特效==0 and self.战斗单位[self.战斗流程[1].被攻击[1].编号]:取状态() then
    	self.执行流程=52
    elseif self.执行流程==917 then
    	self.战斗单位[self.战斗流程[1].攻击方]:添加法术特效("清静菩提2")
    	self.战斗单位[self.战斗流程[1].被攻击]:添加法术特效("清静菩提2")
    	self.执行流程=918
    elseif self.执行流程==918 then
    	-- if self.清静菩提==nil then
    	    self.执行流程=6
    	-- end
    elseif self.执行流程==919 then --鸣雷诀
        self.战斗单位[self.战斗流程[1].被攻击]:添加法术特效("电刑")
        self.执行流程=6
	elseif self.执行流程 == 1000 then
	    self.战斗单位[self.战斗流程[1].攻击方].移动开关=true
	    local axx, ayy = math.floor(960/2),math.floor(540/2)
	    self.战斗单位[self.战斗流程[1].攻击方].坐标记录 = {x = axx , y = ayy}
	    self.战斗单位[self.战斗流程[1].攻击方].移动坐标.x,self.战斗单位[self.战斗流程[1].攻击方].移动坐标.y=axx,ayy
		self.执行流程 = 1001
	elseif self.执行流程 == 1001 and not self.战斗单位[self.战斗流程[1].攻击方].移动开关 then
	    self.战斗单位[self.战斗流程[1].攻击方]:换动作('施法', true)
	    self.执行流程 = 1001.1
	elseif self.执行流程 == 1001.1 and self.战斗单位[self.战斗流程[1].攻击方]:取结束帧() - self.战斗单位[self.战斗流程[1].攻击方]:取当前帧() <= 10 then
	    for n=1,#self.战斗流程[1].被攻击 do
			self.战斗单位[self.战斗流程[1].被攻击[n].目标]:添加法术特效(self.战斗流程[1].特效)
		end
		self.执行流程 = 1002
	elseif self.执行流程 == 1002 and self.战斗单位[self.战斗流程[1].攻击方]:取结束帧() - self.战斗单位[self.战斗流程[1].攻击方]:取当前帧() <= 5 then
		for n=1,#self.战斗流程[1].被攻击 do
			self.战斗单位[self.战斗流程[1].被攻击[n].目标].法术抖动开关 = true
			if self.战斗流程[1].被攻击[n].浮空目标 then
				self.战斗单位[self.战斗流程[1].被攻击[n].浮空目标]:浮空处理()
			end
		end
		self.执行流程 = 1003
	elseif self.执行流程 == 1003 then-- and self.战斗单位[self.战斗流程[1].攻击方].动作=="待战"
		战斗连击单位 = self.战斗流程[1].攻击方
	    for n=1,#self.战斗流程[1].被攻击 do
			self.战斗单位[self.战斗流程[1].被攻击[n].目标]:设置掉血(self.战斗流程[1].被攻击[n].伤害,self.战斗流程[1].被攻击[n].伤害类型)
            self.战斗单位[self.战斗流程[1].被攻击[n].目标]:开启击退(self.战斗流程[1].被攻击[n].死亡,self.战斗单位[self.战斗流程[1].攻击方]:取移动坐标("返回"))
			if 战斗连击显示[self.战斗流程[1].攻击方] == nil then
				战斗连击显示[self.战斗流程[1].攻击方] = 0
			end
			战斗连击显示[self.战斗流程[1].攻击方] = 战斗连击显示[self.战斗流程[1].攻击方] + 1
		end
		self.执行流程 = 1004
	elseif self.执行流程 == 1004 then
		local 条件通过=#self.战斗流程[1].被攻击
        for n=1,#self.战斗流程[1].被攻击 do
            if self.战斗单位[self.战斗流程[1].被攻击[n].目标]:取状态() then
                条件通过=条件通过-1
            else
                条件通过=条件通过-1
            end
        end
        if 条件通过<=0 then
            if self.战斗流程[1].返回 then
            	self.战斗单位[self.战斗流程[1].攻击方].返回开关=true
                self.战斗单位[self.战斗流程[1].攻击方].移动坐标=self.战斗单位[self.战斗流程[1].攻击方]:取移动坐标("返回")
            	self.执行流程=5
            else
                self.执行流程=6
            end
        end
	elseif self.执行流程 == 1005 then
	    if self.战斗流程[1].重复次数 == 1 then
		    self.战斗单位[self.战斗流程[1].攻击方]:换动作('施法', true)
		end
		self.战斗单位[self.战斗流程[1].攻击方].行动对象 = self.战斗流程[1].攻击方 + 0
		战斗连击单位 = self.战斗流程[1].攻击方
	    self.执行流程 = 1006
	elseif self.执行流程 == 1006 and (self.战斗单位[self.战斗流程[1].攻击方]:取间隔() >= self.战斗单位[self.战斗流程[1].攻击方]:取中间()+self.战斗单位[self.战斗流程[1].攻击方].攻击帧 or self.战斗流程[1].重复次数 ~= 1) then
	    self.战斗单位[self.战斗流程[1].攻击方].临时隐藏 = true
	    if self.战斗单位[self.战斗流程[1].攻击方].多重攻击 == nil then
			self.战斗单位[self.战斗流程[1].攻击方].多重攻击 = {}
		end
		self.战斗单位[self.战斗流程[1].攻击方].多重攻击列表 = {}
        for i = 1, #self.战斗流程[1].被攻击 do
			if self.战斗单位[self.战斗流程[1].攻击方].多重攻击[self.战斗流程[1].被攻击[i].编号] == nil then
				local axx, ayy = self:取攻击位置(self.战斗流程[1].攻击方, self.战斗流程[1].被攻击[i].编号, 1)
				self.战斗单位[self.战斗流程[1].攻击方].多重攻击[self.战斗流程[1].被攻击[i].编号] = { x = axx, y = ayy }
            end
            self.战斗单位[self.战斗流程[1].攻击方].多重攻击列表[self.战斗流程[1].被攻击[i].编号] = 1
        end
        多重战斗开关 = { 攻击方 = self.战斗流程[1].攻击方 + 0, 被攻击 = DeepCopy(self.战斗单位[self.战斗流程[1].攻击方].多重攻击列表) }
		--self.战斗单位[self.战斗流程[1].攻击方].动画:临时染色({ 3447, 15, 5 }, self.战斗流程[1].攻击方)
		local aa = { "攻击","攻击2"}
		local yjl = ''
		if self.战斗流程[1].重复次数 ~= nil then
            yjl = aa[math.random(1, #aa)]
            -- if self.战斗流程[1].重复次数[1] == self.战斗流程[1].重复次数[2] then
            --     yjl = "连击3"
            -- end
        end
        self.战斗单位[self.战斗流程[1].攻击方]:换动作(yjl, true)
        self.战斗单位[self.战斗流程[1].攻击方]:浮空处理1()
        -- self.战斗单位[self.战斗流程[1].攻击方].动画:置帧率(yjl,0.06)
        self.执行流程 = 1007
	elseif self.执行流程 == 1007 then
		for i=1,#self.战斗流程[1].被攻击 do
			self.战斗单位[self.战斗流程[1].被攻击[i].编号]:换动作(self.战斗流程[1].被攻击[i].动作,nil,true)
			self.战斗单位[self.战斗流程[1].被攻击[i].编号]:开启击退(self.战斗流程[1].被攻击[i].死亡,self.战斗单位[self.战斗流程[1].攻击方]:取移动坐标("返回"))
			self.战斗单位[self.战斗流程[1].被攻击[i].编号]:设置掉血(self.战斗流程[1].被攻击[i].伤害,self.战斗流程[1].被攻击[i].伤害类型)
			self.战斗单位[self.战斗流程[1].被攻击[i].编号]:添加攻击特效('力辟苍穹'..math.random(1, 2))
			if 战斗连击显示[self.战斗流程[1].攻击方] == nil then
				战斗连击显示[self.战斗流程[1].攻击方] = 0
			end
			战斗连击显示[self.战斗流程[1].攻击方] = 战斗连击显示[self.战斗流程[1].攻击方] + 1
		end
		self.执行流程 = 1008
	elseif self.执行流程 == 1008 and self.战斗单位[self.战斗流程[1].攻击方].动作=="待战" then
        if self.战斗流程[1].重复次数[1] == self.战斗流程[1].重复次数[2] then
        	if 多重战斗开关 ~= false then
	            多重战斗开关 = false
	        end
            local zs = self.战斗单位[self.战斗流程[1].攻击方].动画:取结束帧(yjl)
	        for n = 1, #self.战斗流程[1].被攻击 do
	            self.战斗单位[self.战斗流程[1].被攻击[n].编号]:取消浮空(-zs - 10)
	            self.战斗单位[self.战斗流程[1].被攻击[n].编号]:添加攻击特效('力辟苍穹_落')
	        end
	        if self.战斗单位[self.战斗流程[1].攻击方].攻击对象 ~= nil then
	            self.战斗单位[self.战斗流程[1].攻击方].攻击对象 = nil
	        end
	        if self.战斗单位[self.战斗流程[1].攻击方].行动对象 ~= nil then
				self.战斗单位[self.战斗流程[1].攻击方].行动对象 = nil
			end
			self.战斗流程[1].还原频率 = true
			--self.战斗单位[self.战斗流程[1].攻击方].动画:还原染色()
			self.战斗单位[self.战斗流程[1].攻击方].临时隐藏 = nil
        end
        self.执行流程 = 6
	elseif self.执行流程 == 1024 then

	    for n = 1, #self.战斗流程[1].被攻击 do
			if self.战斗流程[1].被攻击[n].浮空 ~= nil then
				self.战斗单位[self.战斗流程[1].被攻击[n].编号]:浮空处理()
			end
			if self.战斗流程[1].被攻击[n].取消浮空 ~= nil then
				self.战斗单位[self.战斗流程[1].被攻击[n].编号]:取消浮空()
			end
		end
		self.执行流程 = 6		
	end
end
function 战斗主控:攻击坐标调整(模型, zl)
	if 模型 == "蛤蟆精" then
		return 30, 15
	elseif 模型 == "兔子怪" or 模型 == "进阶蝴蝶仙子" or 模型 == "风伯" or 模型 == "镜妖" or 模型 == "进阶芙蓉仙子" or 模型 == "净瓶女娲" or 模型 == "进阶画魂" then
		return 40, 20
	elseif 模型 == "巨蛙" or 模型 == "强盗" or 模型 == "狸" or 模型 == "进阶凤凰" or 模型 == "进阶鲛人" or 模型 == "进阶蛟龙" or 模型 == "鼠先锋" or 模型 == "阴阳伞" or 模型 == "机关鸟" or 模型 == "机关人" or 模型 == "进阶律法女娲" or 模型 == "进阶吸血鬼" or 模型 == "进阶龙龟" or 模型 == "蝎子精" or 模型 == "进阶狂豹人形" or 模型 == "进阶蝎子精" or 模型 == "进阶曼珠沙华" or 模型 == "进阶金身罗汉" or 模型 == "大大王" or 模型 == "杀破狼" and zl == 15 or 模型 == "玄彩娥" and zl == 5 or 模型 == "英女侠" and zl == 10 or 模型 == "骨精灵" and zl == 8 or 模型 == "狐美人" and zl == 10 or 模型 == "鬼潇潇" and zl == 6 or 模型 == "桃夭夭" and zl == 18 then
		return 60, 30
	elseif 模型 == "野猪" or 模型 == "大海龟" or 模型 == "树怪" or 模型 == "赌徒" or 模型 == "大蝙蝠" or 模型 == "护卫" or 模型 == "章鱼" or 模型 == "骷髅怪" or 模型 == "狐狸精" or 模型 == "老虎" or 模型 == "野鬼" or 模型 == "蜘蛛精" or 模型 == "黑熊精" or 模型 == "龟丞相" or 模型 == "马面" or 模型 == "黑山老妖" or 模型 == "进阶古代瑞兽" or 模型 == "进阶雷鸟人" or 模型 == "碧水夜叉" or 模型 == "进阶天将" or 模型 == "进阶地狱战神" or 模型 == "进阶风伯" or 模型 == "如意仙子" or 模型 == "犀牛将军人形" or 模型 == "犀牛将军兽形" or 模型 == "进阶锦毛貂精" or 模型 == "进阶犀牛将军兽形" or 模型 == "进阶野猪精" or 模型 == "画魂" or 模型 == "吸血鬼" or 模型 == "踏云兽" or 模型 == "葫芦宝贝" or 模型 == "幽萤娃娃" or 模型 == "灵鹤" or 模型 == "机关兽" or 模型 == "进阶灵符女娲" or 模型 == "进阶踏云兽" or 模型 == "进阶灵鹤" or 模型 == "进阶机关鸟" or 模型 == "进阶葫芦宝贝" or 模型 == "进阶机关兽" or 模型 == "猫灵兽形" or 模型 == "狂豹人形" or 模型 == "黑白狂豹人形" or 模型 == "进阶黑白狂豹人形" or 模型 == "狂豹兽形" or 模型 == "蜃气妖" or 模型 == "曼珠沙华" or 模型 == "修罗傀儡鬼" or 模型 == "修罗傀儡妖" or 模型 == "毗舍童子" or 模型 == "暗黑毗舍童子" or 模型 == "进阶暗黑毗舍童子" or 模型 == "进阶混沌兽" or 模型 == "进阶长眉灵猴" or 模型 == "进阶巨力神猿" or 模型 == "进阶藤蔓妖花" or 模型 == "进阶修罗傀儡妖" or 模型 == "进阶般若天女" or 模型 == "超级麒麟" or 模型 == "超级白泽" or 模型 == "超级灵鹿" or 模型 == "超级大象" or 模型 == "超级神虎" or 模型 == "超级海豚" or 模型 == "超级人参娃娃" or 模型 == "超级腾蛇" or 模型 == "超级土地公公" or 模型 == "超级六耳猕猴" or 模型 == "镇元大仙" or 模型 == "地涌夫人" or 模型 == "空度禅师" or 模型 == "牛魔王" or 模型 == "神天兵" and zl == 9 or 模型 == "偃无师" and zl == 16 or 模型 == "偃无师" and zl == 3 or 模型 == "舞天姬" and zl == 5 or 模型 == "舞天姬" and zl == 11 or 模型 == "玄彩娥" and zl == 5 or 模型 == "英女侠" and zl == 4 or 模型 == "飞燕女" and zl == 11 or 模型 == "狐美人" and zl == 6 or 模型 == "桃夭夭" and zl == 5 or 模型 == "龙马" then
		return 70, 35
	elseif 模型 == "山贼" or 模型 == "羊头怪" or 模型 == "狼" or 模型 == "蟹将" or 模型 == "雷鸟人" or 模型 == "天兵" or 模型 == "地狱战神" or 模型 == "凤凰" or 模型 == "进阶天兵" or 模型 == "进阶碧水夜叉" or 模型 == "星灵仙子" or 模型 == "进阶巡游天神" or 模型 == "进阶百足将军" or 模型 == "琴仙" or 模型 == "金铙僧" or 模型 == "进阶炎魔神" or 模型 == "进阶大力金刚" or 模型 == "进阶机关人" or 模型 == "进阶夜罗刹" or 模型 == "进阶琴仙" or 模型 == "长眉灵猴" or 模型 == "持国巡守" or 模型 == "进阶蜃气妖" or 模型 == "进阶持国巡守" or 模型 == "进阶灵灯侍者" or 模型 == "超级孔雀" or 模型 == "超级灵狐" or 模型 == "超级青鸾" or 模型 == "超级神鸡" or 模型 == "超级神蛇" or 模型 == "东海龙王" or 模型 == "逍遥生" and zl == 3 or 模型 == "龙太子" and zl == 1 or 模型 == "巨魔王" and zl == 2 or 模型 == "巨魔王" and zl == 12 or 模型 == "虎头怪" and zl == 9 or 模型 == "虎头怪" and zl == 2 or 模型 == "飞燕女" and zl == 4 or 模型 == "骨精灵" and zl == 6 or 模型 == "超级飞廉" or 模型 == "进阶超级飞廉" then
		return 80, 40
	elseif 模型 == "古代瑞兽" or 模型 == "蝴蝶仙子" or 模型 == "芙蓉仙子" or 模型 == "百足将军" or 模型 == "进阶阴阳伞" or 模型 == "炎魔神" or 模型 == "龙龟" or 模型 == "鬼将" or 模型 == "进阶巴蛇" or 模型 == "进阶噬天虎" or 模型 == "进阶连弩车" or 模型 == "进阶金铙僧" or 模型 == "巨力神猿" or 模型 == "金身罗汉" or 模型 == "真陀护法" or 模型 == "增长巡守" or 模型 == "灵灯侍者" or 模型 == "般若天女" or 模型 == "进阶狂豹兽形" or 模型 == "进阶修罗傀儡鬼" or 模型 == "进阶增长巡守" or 模型 == "超级神龙" or 模型 == "超级赤焰兽" or 模型 == "超级大熊猫" or 模型 == "超级泡泡" or 模型 == "超级神牛" or 模型 == "超级小白龙" or 模型 == "超级玉兔" or 模型 == "超级神马" or 模型 == "超级筋斗云" or 模型 == "超级神猪" then
		return 90, 45
	elseif 模型 == "进阶犀牛将军人形" or 模型 == "进阶真陀护法" or 模型 == "超级神猴" or 模型 == "超级神羊" or 模型 == "巫奎虎" or 模型 == "剑侠客" and zl == 3 or 模型 == "剑侠客" and zl == 12 or 模型 == "神天兵" and zl == 1 then
		return 100, 50
	elseif 模型 == "牛妖" or 模型 == "巡游天神" or 模型 == "飞天" then
		return 110, 55
	elseif 模型 == "大力金刚" or 模型 == "连弩车" or 模型 == "二郎神" then
		return 130, 65
	elseif 模型 == "进阶蚩尤" or 模型 == "沙僧" then
		return 140, 70
	elseif 模型 == "超级神鼠" then
		return 200, 100
	elseif 模型 == "恶魔泡泡" or 模型 == "恶魔泡泡(哭泣)" or 模型 == "恶魔泡泡(困惑)" or 模型 == "恶魔泡泡(奸笑)" or 模型 == "恶魔泡泡(白眼)" then
		return 90, 47
	elseif 模型 == "影精灵" or 模型 == "魔化吕布" then
		return 80, 40
	elseif 模型 == "进阶毗舍童子" then
		return 60, 40
	end

	return 50, 25
end
function 战斗主控:流程更新二段()
	if self.战斗流程[1].结尾气血 and self.战斗流程[1].结尾气血 > 0 then
		self.战斗单位[self.战斗流程[1].攻击方]:设置掉血(self.战斗流程[1].结尾气血, 1)
		self.战斗流程[1].结尾气血 = nil
	end
	if self.战斗流程[1].附加施法 ~= nil and self.战斗流程[1].附加施法.完成 == nil and self.战斗流程[1].附加施法[1] then
		if self.战斗流程[1].附加施法[1].进度 == nil then
			self.战斗流程[1].附加施法[1].进度 =1
		end
		if self.战斗流程[1].附加施法[1].进度 ==1 then
			self.战斗单位[self.战斗流程[1].附加施法[1].攻击方]:换动作("施法",true)
			self.战斗流程[1].附加施法[1].进度 =1.1
			self.erjsq=os.time()
		elseif self.战斗流程[1].附加施法[1].进度 ==1.1 and os.time()-self.erjsq>=1 then
			for n=1,#self.战斗流程[1].附加施法[1].被攻击 do
				self.战斗单位[self.战斗流程[1].附加施法[1].被攻击[n].编号]:添加法术特效(self.战斗流程[1].附加施法[1].被攻击[n].特效[1])
			end
			self.战斗流程[1].附加施法[1].进度 =2
		elseif self.战斗流程[1].附加施法[1].进度 ==2 and #self.战斗单位[self.战斗流程[1].附加施法[1].被攻击[1].编号].法术特效==0 then
			for n=1,#self.战斗流程[1].附加施法[1].被攻击 do
				if self.战斗流程[1].附加施法[1].被攻击[n].类型 == 2 then
					self.战斗单位[self.战斗流程[1].附加施法[1].被攻击[n].编号]:设置掉血(self.战斗流程[1].附加施法[1].被攻击[n].伤害,self.战斗流程[1].附加施法[1].被攻击[n].类型)
				elseif self.战斗流程[1].附加施法[1].被攻击[n].类型==1 or self.战斗流程[1].附加施法[1].被攻击[n].类型==3 or self.战斗流程[1].附加施法[1].被攻击[n].类型==3.5 then
				 	self.战斗单位[self.战斗流程[1].附加施法[1].被攻击[n].编号]:设置掉血(self.战斗流程[1].附加施法[1].被攻击[n].伤害,self.战斗流程[1].附加施法[1].被攻击[n].类型)
					self.战斗单位[self.战斗流程[1].附加施法[1].被攻击[n].编号]:开启击退(self.战斗流程[1].附加施法[1].被攻击[n].死亡,self.战斗单位[self.战斗流程[1].附加施法[1].攻击方]:取移动坐标("返回"))
				end
			end
			self.战斗流程[1].附加施法[1].完成 = true
		end
	else
    	if self.战斗流程[1].附加施法 == nil then
    		self.战斗流程[1].附加施法={}
    	end
	end
	if self.战斗流程[1].附加施法[1]  then
		if self.战斗流程[1].附加施法[1].完成 then
			table.remove(self.战斗流程[1].附加施法,1)
		end
	else
		self.战斗流程[1].附加施法.完成 = true
	end
	if not self.战斗流程[1].附加施法.完成 then  return  end
	if self.战斗流程[1].溅射 ~= nil and  self.战斗流程[1].溅射.完成== nil then
		for i=1,#self.战斗流程[1].溅射 do
			if self.战斗单位[self.战斗流程[1].溅射[i].被攻击] ~= nil then
				self.战斗单位[self.战斗流程[1].溅射[i].被攻击]:设置掉血(self.战斗流程[1].溅射[i].伤害,1)
				self.战斗单位[self.战斗流程[1].溅射[i].被攻击]:开启击退(self.战斗流程[1].溅射[i].死亡)
			end
		end
		self.战斗流程[1].溅射.完成 = true
	end

	if self.战斗流程[1].无动作掉血 ~= nil and  self.战斗流程[1].无动作掉血.完成== nil then
		for i=1,#self.战斗流程[1].无动作掉血 do
			if self.战斗单位[self.战斗流程[1].无动作掉血[i].被攻击] ~= nil then
				self.战斗单位[self.战斗流程[1].无动作掉血[i].被攻击]:设置掉血(self.战斗流程[1].无动作掉血[i].伤害,1)
				if self.战斗流程[1].无动作掉血[i].死亡 then
					self.战斗单位[self.战斗流程[1].无动作掉血[i].被攻击]:死亡处理1(self.战斗流程[1].无动作掉血[i].死亡)
				end
			end
		end
		self.战斗流程[1].无动作掉血.完成 = true
	end

	if self.战斗流程[1].状态处理添加 ~= nil and self.战斗流程[1].状态处理添加.完成 == nil then
		for i=1,#self.战斗流程[1].状态处理添加 do
			if self.战斗单位[self.战斗流程[1].状态处理添加[i].编号].状态特效[self.战斗流程[1].状态处理添加[i].名称] == nil then
				self.战斗单位[self.战斗流程[1].状态处理添加[i].编号]:增加状态(self.战斗流程[1].状态处理添加[i].名称)
			else
				self.战斗单位[self.战斗流程[1].状态处理添加[i].编号].状态特效[self.战斗流程[1].状态处理添加[i].名称].回合 = self.战斗流程[1].状态处理添加[i].回合
			end
		end
		self.战斗流程[1].状态处理添加.完成 = true
	end

	if self.战斗流程[1].状态处理取消 ~= nil and self.战斗流程[1].状态处理取消.完成 == nil  then
		for i=1,#self.战斗流程[1].状态处理取消 do
			if self.战斗单位[self.战斗流程[1].状态处理取消[i].编号].状态特效[self.战斗流程[1].状态处理取消[i].名称] ~= nil then
				self.战斗单位[self.战斗流程[1].状态处理取消[i].编号].状态特效[self.战斗流程[1].状态处理取消[i].名称]=nil
			end
		end
		self.战斗流程[1].状态处理取消.完成 = true
	end

	if self.战斗流程[1].回复气血 ~= nil and self.战斗流程[1].回复气血.完成 == nil then
		for i=1,#self.战斗流程[1].回复气血 do
			self.战斗单位[self.战斗流程[1].回复气血[i].被攻击]:设置掉血(self.战斗流程[1].回复气血[i].气血,2)
		end
		 self.战斗流程[1].回复气血.完成 = true
	end

	if self.战斗流程[1].同步气血 ~= nil and self.战斗流程[1].同步气血.完成 == nil then
		for i=1,#self.战斗流程[1].同步气血 do
			self.战斗单位[self.战斗流程[1].同步气血[i].被攻击]:同步气血(self.战斗流程[1].同步气血[i].气血,self.战斗流程[1].同步气血[i].气血上限)--,self.战斗流程[1].同步气血[i].气血上限
		end
		self.战斗流程[1].同步气血.完成 = true
	end
	if self.战斗流程[1].减少魔法 ~= nil and self.战斗流程[1].减少魔法.完成 == nil then
		for i=1,#self.战斗流程[1].减少魔法 do
			self.战斗单位[self.战斗流程[1].减少魔法[i].被攻击]:魔法更新(self.战斗流程[1].减少魔法[i].魔法)
		end
		 self.战斗流程[1].减少魔法.完成 = true
	end
	if not self.战斗流程[1].附加施法.完成 then  return  end 
	if self.战斗流程[1].添加护盾 ~= nil and self.战斗流程[1].添加护盾.完成 == nil then
		for i=1,#self.战斗流程[1].添加护盾 do
			self.战斗单位[self.战斗流程[1].添加护盾[i].被攻击]:护盾更新(self.战斗流程[1].添加护盾[i].护盾)
		end
		 self.战斗流程[1].添加护盾.完成 = true
	end
	if self.战斗流程[1].魔法更新~= nil then self.战斗单位[self.战斗流程[1].攻击方]:魔法更新(self.战斗流程[1].魔法更新) end
	if self.战斗流程[1].愤怒更新~= nil then self.战斗单位[self.战斗流程[1].攻击方]:愤怒更新(self.战斗流程[1].愤怒更新) end
	if self.战斗流程[1].战意更新~= nil then self.战斗单位[self.战斗流程[1].攻击方]:战意更新(self.战斗流程[1].战意更新) end
	if self.战斗流程[1].超级战意更新~= nil then self.战斗单位[self.战斗流程[1].攻击方]:超级战意更新(self.战斗流程[1].超级战意更新) end
	if self.战斗流程[1].骤雨更新~= nil then self.战斗单位[self.战斗流程[1].攻击方]:骤雨更新(self.战斗流程[1].骤雨更新) end
	if self.战斗流程[1].五行珠更新~= nil then self.战斗单位[self.战斗流程[1].攻击方]:五行珠更新(self.战斗流程[1].五行珠更新) end
	if self.战斗流程[1].人参果更新~= nil then self.战斗单位[self.战斗流程[1].攻击方]:人参果更新(self.战斗流程[1].人参果更新) end --这里好像不操作就不会更新

	if self.战斗流程[1].结尾死亡 then
		self.战斗单位[self.战斗流程[1].攻击方]:死亡处理1(self.战斗流程[1].结尾死亡)
	end
	table.remove(self.战斗流程, 1)
	self.执行流程 = 0
	self.进程 = "计算"
	if #self.战斗流程 == 0 then
		self.拼接特效 = nil
		self.背景状态 = nil
		for i = 1, #self.战斗单位 do
			self.战斗单位[i]:回合结束重置()
		end
		collectgarbage()
		self.进程 = "等待"
		if 多开数据[self.当前].__主控.观战中 == false then
			发送数据(当前 or self and self.当前, 5503, { 战斗id = self.战斗id })
		end
	end
end

local qxbx={}
qxbx["金刚护法"]=1
qxbx["分身术"]=1
qxbx["修罗隐身"]=1
qxbx["楚楚可怜"]=1
qxbx["逆鳞"]=1

function 战斗主控:结束流程(内容)
	for i=1,#内容 do
		for k,v in pairs(内容[i]) do
			if 内容[i].被攻击 ~= nil and self.战斗单位[内容[i].被攻击] ~= nil then
				if k == "取消状态" then
					for s=1,#内容[i].取消状态 do
						self.战斗单位[内容[i].被攻击].状态特效[内容[i].取消状态[s]]=nil
						if qxbx[内容[i].取消状态[s]] then
							self.战斗单位[内容[i].被攻击]:取消变相()
							if 内容[i].取消状态[s] == "分身术" or 内容[i].取消状态[s] == "修罗隐身" then
								self.战斗单位[内容[i].被攻击]:取消隐身()
							end
						end
					end
				elseif k == "复活" then
					self.战斗单位[内容[i].被攻击].停止更新=false
					self.战斗单位[内容[i].被攻击]:换动作("待战")
					self.战斗单位[内容[i].被攻击]:设置掉血(内容[i].复活.气血,2)
					self.战斗单位[内容[i].被攻击]:换动作("待战")
				elseif k == "法术状态" then
					for z,x in pairs(内容[i].法术状态) do
						if self.战斗单位[内容[i].被攻击].状态特效[z] == nil then
							self.战斗单位[内容[i].被攻击]:增加状态(z)
							self.战斗单位[内容[i].被攻击].状态特效[z].回合 = 内容[i].法术状态[z].回合
						else
						    self.战斗单位[内容[i].被攻击].状态特效[z].回合 = 内容[i].法术状态[z].回合
						end
						if 内容[i].法术状态[z].层数~=nil then
						    self.战斗单位[内容[i].被攻击].状态特效[z].层数=内容[i].法术状态[z].层数
						end
					end
				elseif k == "人物状态" then
					self.战斗单位[内容[i].被攻击]:结束同步(内容[i].人物状态.气血,内容[i].人物状态.最大气血,内容[i].人物状态.气血上限,内容[i].人物状态.魔法,内容[i].人物状态.最大魔法,内容[i].人物状态.愤怒,内容[i].人物状态.护盾,内容[i].人物状态.战意,内容[i].人物状态.五行珠,内容[i].人物状态.人参果,内容[i].人物状态.骤雨,内容[i].人物状态.超级战意)
				elseif k == "结尾回血" then 
					self.战斗单位[内容[i].被攻击]:设置掉血(内容[i].结尾回血.气血,2)
				elseif k == "共生" then
					self.战斗单位[内容[i].被攻击].共生=true
				elseif k == '黎魂' then
					self.战斗单位[内容[i].被攻击].黎魂 = v	
				elseif k == "丸子附加" then
					self.战斗单位[内容[i].被攻击].超级偷袭 = v.超级偷袭
				end
			end
		end
	end
	for i=1,#self.特殊状态 do --这里加结束流程 特殊状态加在这？
		if self.特殊状态[i] ~= nil then
			if self.特殊状态[i].回合 == 0 then
				self:特殊状态处理(self.特殊状态[i].名称,2)
				self.特殊状态[i] = nil
				table.remove(self.特殊状态,i)
			else
				self.特殊状态[i].回合 = self.特殊状态[i].回合 -1
			end
		end
	end
end

function 战斗主控:加载生成怪物(sj)
	for i = 1, #sj do
		self.战斗单位[sj[i].被攻击] = __战斗单位(self.当前)
		self.战斗单位[sj[i].被攻击]:创建单位(sj[i].数据, sj[i].队伍, sj[i].被攻击)
		self.战斗单位[sj[i].被攻击].是否显示 = true
	end
end

function 战斗主控:置全屏技能(jnm, 单位)
	if self.战斗单位[self.施法信息.攻击方].招式特效 and self.战斗单位[self.施法信息.攻击方].招式特效[jnm] then
		jnm = "新_" .. jnm
	end
	local qp = nil
	self.全屏加速 = 1.5
	self.掉血流程 = 0
	if jnm == "新_龙卷雨击" then
		self.全屏加速 = 1
		self.拼接特效 = {}
		self.拼接特效[#self.拼接特效 + 1] = {}
		self.拼接特效[#self.拼接特效].特效 = 单位:加载特效("新_龙卷雨击")
		self.拼接特效[#self.拼接特效].偏移 = { x = -70, y = 62 }
		qp = true
	elseif jnm == "新_龙吟" then
		self.全屏加速 = 1
		self.拼接特效 = {}
		self.拼接特效[#self.拼接特效 + 1] = {}
		self.拼接特效[#self.拼接特效].特效 = 单位:加载特效("新_龙吟")
		self.拼接特效[#self.拼接特效].偏移 = { x = -75, y = -47 }
		qp = true
	elseif jnm == "叱咤风云" then
		self.全屏加速 = 1
		self.拼接特效 = {}
		self.拼接特效[#self.拼接特效 + 1] = {}
		self.拼接特效[#self.拼接特效].特效 = 单位:加载特效("叱咤风云")
		self.拼接特效[#self.拼接特效].偏移 = { x = -70, y = 62 }
		qp = true
	elseif jnm == "河东狮吼" then
		self.拼接特效 = {}
		self.拼接特效[1] = {}
		self.拼接特效[1].特效 = 单位:加载特效("河东狮吼")
		self.拼接特效[1].偏移 = { x = -50, y = 20 }
		self.掉血流程 = 1
		self.掉血帧 = 10
		self.全屏加速 = 0.8
		qp = true
	elseif jnm == "侵掠如火" then
		self.拼接特效 = {}
		self.拼接特效[1] = {}
		self.拼接特效[1].特效 = 单位:加载特效("侵掠如火")
		self.拼接特效[1].偏移 = { x = -50, y = 20 }
		self.全屏加速 = 1
		qp = true
	elseif jnm == "其徐如林" then
		self.拼接特效 = {}
		self.拼接特效[1] = {}
		self.拼接特效[1].特效 = 单位:加载特效("其徐如林")
		self.拼接特效[1].偏移 = { x = -50, y = 20 }
		self.全屏加速 = 1
		qp = true
	elseif jnm == "不动如山 " then
		self.拼接特效 = {}
		self.拼接特效[1] = {}
		self.拼接特效[1].特效 = 单位:加载特效("不动如山 ")
		self.拼接特效[1].偏移 = { x = -50, y = 20 }
		self.全屏加速 = 1
		qp = true
	elseif jnm == "其疾如风" then
		self.拼接特效 = {}
		self.拼接特效[1] = {}
		self.拼接特效[1].特效 = 单位:加载特效("其疾如风")
		self.拼接特效[1].偏移 = { x = -50, y = 20 }
		self.全屏加速 = 1
		qp = true
	elseif jnm == "新_破釜沉舟" then
		self.全屏加速 = 1
		self.拼接特效 = {}
		self.拼接特效[#self.拼接特效 + 1] = {}
		self.拼接特效[#self.拼接特效].特效 = 单位:加载特效("新_破釜沉舟")
		self.拼接特效[#self.拼接特效].偏移 = { x = -96, y = -34 }
		qp = true
	elseif jnm == "破釜沉舟" then
		self.全屏加速 = 1
		self.拼接特效 = {}
		self.拼接特效[#self.拼接特效 + 1] = {}
		self.拼接特效[#self.拼接特效].特效 = 单位:加载特效("破釜沉舟")
		self.拼接特效[#self.拼接特效].偏移 = { x = -109, y = -53 }
		qp = true
	elseif jnm == "新_推气过宫" then
		self.全屏加速 = 1.2
		self.拼接特效 = {}
		self.拼接特效[#self.拼接特效 + 1] = {}
		self.拼接特效[#self.拼接特效].特效 = 单位:加载特效("新_推气过宫")
		self.拼接特效[#self.拼接特效].偏移 = { x = -98, y = 60 }
		qp = true
	elseif jnm == "新_雷霆万钧" then
		self.全屏加速 = 1.2
		self.拼接特效 = {}
		self.拼接特效[#self.拼接特效 + 1] = {}
		self.拼接特效[#self.拼接特效].特效 = 单位:加载特效("新_雷霆万钧")
		self.拼接特效[#self.拼接特效].偏移 = { x = -73, y = -60 }
		qp = true
	elseif jnm == "新_飞砂走石" then
		self.全屏加速 = 1.2
		self.拼接特效 = {}
		self.拼接特效[#self.拼接特效 + 1] = {}
		self.拼接特效[#self.拼接特效].特效 = 单位:加载特效("新_飞砂走石")
		self.拼接特效[#self.拼接特效].偏移 = { x = -20, y = -30 }
		qp = true
	elseif jnm == "新_落叶萧萧" or jnm == "落叶萧萧" or jnm == "风卷残云" then
		self.全屏加速 = 1.2
		self.拼接特效 = {}
		self.拼接特效[#self.拼接特效 + 1] = {}
		self.拼接特效[#self.拼接特效].特效 = 单位:加载特效("新_落叶萧萧")
		self.拼接特效[#self.拼接特效].偏移 = { x = -93, y = 56 }
		qp = true
	elseif jnm == "新_翻江搅海" then
		self.全屏加速 = 1.2
		self.拼接特效 = {}
		self.拼接特效[#self.拼接特效 + 1] = {}
		self.拼接特效[#self.拼接特效].特效 = 单位:加载特效("新_翻江搅海")
		self.拼接特效[#self.拼接特效].偏移 = { x = -62, y = 26 }
		qp = true
	elseif jnm == "神针撼海" then --！！
		self.全屏加速=3
		self.拼接特效 = {}
		self.拼接特效[#self.拼接特效+1] = {}
		self.拼接特效[#self.拼接特效].特效 = 单位:加载特效("神针撼海")
		self.拼接特效[#self.拼接特效].偏移 = {x=-55+50,y=15-58}
		qp = true
	elseif jnm == "雷霆万钧" then
		self.全屏加速 = 1.2
		self.拼接特效 = {}
		self.拼接特效[#self.拼接特效 + 1] = {}
		self.拼接特效[#self.拼接特效].特效 = 单位:加载特效("雷霆万钧")
		self.拼接特效[#self.拼接特效].偏移 = { x = -103, y = 16 }
		self.拼接特效[#self.拼接特效].延时 = 5
		self.拼接特效[#self.拼接特效 + 1] = {}
		self.拼接特效[#self.拼接特效].特效 = 单位:加载特效("雷霆万钧")
		self.拼接特效[#self.拼接特效].偏移 = { x = 42, y = -98 }
		self.拼接特效[#self.拼接特效].延时 = 5
		self.拼接特效[#self.拼接特效 + 1] = {}
		self.拼接特效[#self.拼接特效].特效 = 单位:加载特效("雷霆万钧")
		self.拼接特效[#self.拼接特效].偏移 = { x = -174, y = 62 }
		self.拼接特效[#self.拼接特效].延时 = 10
		self.拼接特效[#self.拼接特效 + 1] = {}
		self.拼接特效[#self.拼接特效].特效 = 单位:加载特效("雷霆万钧")
		self.拼接特效[#self.拼接特效].偏移 = { x = -48, y = 0 }
		self.拼接特效[#self.拼接特效].延时 = 10
		qp = true
	elseif jnm == "龙卷雨击" then
		self.拼接特效 = {}
		for s = 1, 4 do
			self.拼接特效[s] = {}
			self.拼接特效[s].特效 = 单位:加载特效("龙卷雨击" .. s)
			self.拼接特效[s].偏移 = { x = 0, y = 0 }
			if s == 1 then
				self.拼接特效[s].偏移 = { x = 60, y = 20 }
			elseif s == 2 then
				self.拼接特效[s].偏移 = { x = -60, y = -50 }
			elseif s == 3 then
				self.拼接特效[s].偏移 = { x = -90, y = -10 }
			elseif s == 4 then
				self.拼接特效[s].偏移 = { x = -40, y = -100 }
			end
		end
		self.背景状态 = 1
		self.全屏加速 = 2
		qp = true
	elseif jnm == "龙吟" then
		self.拼接特效 = {}
		for s = 1, 5 do
			self.拼接特效[s] = {}
			self.拼接特效[s].特效 = 单位:加载特效("龙吟" .. s)
			self.拼接特效[s].偏移 = { x = 0, y = 0 }
			if s == 1 then
				self.拼接特效[s].偏移 = { x = 60, y = 20 }
			elseif s == 2 then
				self.拼接特效[s].偏移 = { x = -10, y = -20 }
			end
		end
		self.背景状态 = 1
		self.全屏加速 = 1.5
		qp = true
	elseif jnm == "飞砂走石" or jnm == "风云变色" then
		self.拼接特效 = {}
		self.拼接特效[1] = {}
		self.拼接特效[1].特效 = 单位:加载特效("飞砂走石")
		self.拼接特效[1].偏移 = { x = 0, y = 50 }
		self.拼接特效[2] = {}
		self.拼接特效[2].特效 = 单位:加载特效("飞砂走石1")
		self.拼接特效[2].偏移 = { x = -100, y = -15 }
		self.拼接特效[3] = {}
		self.拼接特效[3].特效 = 单位:加载特效("飞砂走石1")
		self.拼接特效[3].偏移 = { x = 0, y = 10 }
		self.拼接特效[4] = {}
		self.拼接特效[4].特效 = 单位:加载特效("飞砂走石")
		self.拼接特效[4].偏移 = { x = 100, y = -50 }
		self.全屏加速 = 1.2
		qp = true
	elseif jnm == "雨落寒沙" or jnm == "子母神针" then
		if 单位.敌我 == 1 then
			self.拼接特效 = {}
			self.拼接特效[1] = {}
			self.拼接特效[1].特效 = 单位:加载特效("雨落寒沙_我方")
			self.拼接特效[1].偏移 = { x = -130, y = -30 }
			self.掉血流程 = 1
			self.掉血帧 = 15
			self.全屏加速 = 2
			qp = true
		else
			self.拼接特效 = {}
			self.拼接特效[1] = {}
			self.拼接特效[1].特效 = 单位:加载特效("雨落寒沙_敌方")
			self.拼接特效[1].偏移 = { x = 30, y = 20 }
			self.掉血流程 = 1
			self.掉血帧 = 15
			self.全屏加速 = 2
			qp = true
		end
	elseif jnm == "瘴气" then --
		self.拼接特效 = {}
		if 单位.敌我==1 then
			self.拼接特效[1] = {}
			self.拼接特效[1].特效 = 单位:加载特效("瘴气")
			self.拼接特效[1].偏移 = {x=-50,y=-20}
		else
			self.拼接特效[1] = {}
			self.拼接特效[1].特效 = 单位:加载特效("瘴气")
			self.拼接特效[1].偏移 = {x=-80,y=20}
		end
		self.全屏加速=2
		qp = true
	elseif jnm == "魔火焚世" then
		if self.战斗单位[self.施法信息.攻击方].招式特效["飞砂走石"] then
			self.拼接特效 = {}
			self.拼接特效[#self.拼接特效 + 1] = {}
			self.拼接特效[#self.拼接特效].特效 = 单位:加载特效("新_飞砂走石")
			self.拼接特效[#self.拼接特效].偏移 = { x = -20, y = -30 }
		else
			self.拼接特效 = {}
			self.拼接特效[1] = {}
			self.拼接特效[1].特效 = 单位:加载特效("飞砂走石")
			self.拼接特效[1].偏移 = { x = 0, y = 50 }
			self.拼接特效[2] = {}
			self.拼接特效[2].特效 = 单位:加载特效("飞砂走石1")
			self.拼接特效[2].偏移 = { x = -100, y = -15 }
			self.拼接特效[3] = {}
			self.拼接特效[3].特效 = 单位:加载特效("飞砂走石1")
			self.拼接特效[3].偏移 = { x = 0, y = 10 }
			self.拼接特效[4] = {}
			self.拼接特效[4].特效 = 单位:加载特效("飞砂走石")
			self.拼接特效[4].偏移 = { x = 100, y = -50 }
		end

		self.全屏加速 = 1.2
		qp = true
		self.特殊状态[#self.特殊状态 + 1] = { 名称 = "魔火焚世", 回合 = 2 }
		self:特殊状态处理("魔火焚世", 1)
		if 单位.敌我 == 1 then
			self:特殊状态处理("魔火焚世", 1, 引擎.宽度 - 212 - 27, 引擎.高度 - 176)
		else
			self:特殊状态处理("魔火焚世", 1, 358, 236)
		end
	elseif jnm == "其疾如风" or jnm == "其疾如林" or jnm == "其疾如火" or jnm == "其疾如山" then
		self.拼接特效 = {}
		self.拼接特效[1] = {}
		self.拼接特效[1].特效 = 单位:加载特效(jnm)
		self.拼接特效[1].偏移 = { x = 60, y = 100 }
		self.全屏加速 = 0.5
		--self.背景状态 = 1
		qp = true
	elseif jnm == "无间地狱" then
		self.全屏加速 = 1
		self.拼接偏移.x, self.拼接偏移.y = 0, 0
		self.拼接特效 = {}
		self.拼接特效[1] = {}
		self.拼接特效[1].特效 = 单位:加载特效("无间地狱2")
		self.拼接特效[1].偏移 = { x = 引擎.宽度 / 2 + 50, y = 引擎.高度 / 2 + 25 }
		self.拼接特效[2] = {}
		self.拼接特效[2].特效 = 单位:加载特效("无间地狱")
		self.拼接特效[2].偏移 = { x = 引擎.宽度 / 2 + 50, y = 引擎.高度 / 2 + 25 }
		self.特殊状态[#self.特殊状态 + 1] = { 名称 = "无间地狱", 回合 = 2 }
		self:特殊状态处理("无间地狱", 1)
	elseif jnm == "清静菩提" then
		self.全屏加速 = 1
		self.拼接偏移.x, self.拼接偏移.y = 0, 0
		self.拼接特效 = {}
		self.拼接特效[1] = {}
		self.拼接特效[1].特效 = 单位:加载特效("清静菩提")
		self.拼接特效[1].偏移 = { x = 引擎.宽度 / 2 + 50, y = 引擎.高度 / 2 + 25 }
	elseif jnm == "媚眼如丝" then
		self.全屏加速 = 1
		self.拼接偏移.x, self.拼接偏移.y = 0, 0
		self.拼接特效 = {}
		self.拼接特效[1] = {}
		self.拼接特效[1].特效 = 单位:加载特效("媚眼如丝")
		self.拼接特效[1].偏移 = { x = 引擎.宽度 / 2 + 50, y = 引擎.高度 / 2 + 25 }
		self.特殊状态[#self.特殊状态 + 1] = { 名称 = "媚眼如丝", 回合 = 2 }
		self:特殊状态处理("媚眼如丝", 1)
	elseif jnm == "鸣雷诀" then
		self.全屏加速 = 1
		self.拼接偏移.x, self.拼接偏移.y = 0, 0
		self.拼接特效 = {}
		self.拼接特效[1] = {}
		self.拼接特效[1].特效 = 单位:加载特效("媚眼如丝")
		self.拼接特效[1].偏移 = { x = 引擎.宽度 / 2 + 50, y = 引擎.高度 / 2 + 25 }
	elseif jnm == "诸天看护" then
		self.拼接特效 = {}
		self.拼接特效[1] = {}
		self.拼接特效[1].特效 = 单位:加载特效("诸天看护")
		self.拼接特效[1].偏移 = { x = 0, y = 0 }
		self.全屏加速 = 1
		--self.背景状态 = 1
		qp = true
	elseif jnm == "天罚" then
		self.拼接特效 = {}
		self.拼接特效[1] = {}
		self.拼接特效[1].特效 = 单位:加载特效("天罚")
		self.拼接特效[1].偏移 = { x = 0, y = 0 }
		self.全屏加速 = 0.8
		--self.背景状态 = 1
		qp = true
	elseif jnm == "法身" then
		self.拼接特效 = {}
		self.拼接特效[1] = {}
		self.拼接特效[1].特效 = 单位:加载特效("法身")
		self.拼接特效[1].偏移 = { x = 0, y = 0 }
		self.全屏加速 = 1
		--self.背景状态 = 1
		qp = true
	elseif jnm == "吞云吐雾" then
		self.拼接特效 = {}
		self.拼接特效[1] = {}
		self.拼接特效[1].特效 = 单位:加载特效("吞云吐雾")
		self.拼接特效[1].偏移 = { x = -100, y = -200 }
		self.全屏加速 = 1
		--self.背景状态 = 1
		qp = true
	elseif jnm == "魔神降临" then
		self.拼接特效 = {}
		self.拼接特效[1] = {}
		self.拼接特效[1].特效 = 单位:加载特效("魔神降临")
		self.拼接特效[1].偏移 = { x = 0, y = 0 }
		self.全屏加速 = 1
		--self.背景状态 = 1
		qp = true
	elseif jnm == "泰山压顶" or jnm == "超级泰山压顶" then
		self.全屏加速 = 2
		self.拼接特效 = {}
		self.拼接特效[1] = {}
		self.拼接特效[1].特效 = 单位:加载特效("泰山压顶")
		self.拼接特效[1].偏移 = { x = -50, y = -110 }
		self.拼接特效[1].结束时间 = 25
		qp = true
	elseif jnm == "奔雷咒" or jnm == "超级奔雷咒" then
		self.全屏加速 = 1.2
		self.拼接特效 = {}
		self.拼接特效[#self.拼接特效 + 1] = {}
		self.拼接特效[#self.拼接特效].特效 = 单位:加载特效("奔雷咒1")
		self.拼接特效[#self.拼接特效].偏移 = { x = -196 + 70, y = -14 - 30 }
		self.拼接特效[#self.拼接特效].延时 = 5
		self.拼接特效[#self.拼接特效 + 1] = {}
		self.拼接特效[#self.拼接特效].特效 = 单位:加载特效("奔雷咒2")
		self.拼接特效[#self.拼接特效].偏移 = { x = -81 + 70, y = -61 - 30 }
		self.拼接特效[#self.拼接特效].延时 = 5
		self.拼接特效[#self.拼接特效 + 1] = {}
		self.拼接特效[#self.拼接特效].特效 = 单位:加载特效("奔雷咒")
		self.拼接特效[#self.拼接特效].偏移 = { x = -149 + 70, y = -14 - 30 }
		self.拼接特效[#self.拼接特效].延时 = 10
		self.拼接特效[#self.拼接特效 + 1] = {}
		self.拼接特效[#self.拼接特效].特效 = 单位:加载特效("奔雷咒")
		self.拼接特效[#self.拼接特效].偏移 = { x = -92 + 70, y = -51 - 30 }
		self.拼接特效[#self.拼接特效].延时 = 10
		self.拼接特效[#self.拼接特效 + 1] = {}
		self.拼接特效[#self.拼接特效].特效 = 单位:加载特效("奔雷咒1")
		self.拼接特效[#self.拼接特效].偏移 = { x = -244 + 70, y = 18 - 30 }
		self.拼接特效[#self.拼接特效].延时 = 15
		self.拼接特效[#self.拼接特效 + 1] = {}
		self.拼接特效[#self.拼接特效].特效 = 单位:加载特效("奔雷咒2")
		self.拼接特效[#self.拼接特效].偏移 = { x = 31 + 70, y = -77 - 30 }
		self.拼接特效[#self.拼接特效].延时 = 15
		self.拼接特效[#self.拼接特效].特效 = 单位:加载特效("奔雷咒")
		self.拼接特效[#self.拼接特效].偏移 = { x = -149 + 70, y = -14 - 30 }
		self.拼接特效[#self.拼接特效].延时 = 15
		qp = true
	elseif jnm == "天降灵葫_大" then
		self.全屏加速 = 1
		self.拼接特效 = {}
		self.拼接特效[1] = {}
		self.拼接特效[1].特效 = 单位:加载特效(jnm)
		self.拼接特效[1].偏移 = { x = -50, y = -40 }
		qp = true
	elseif jnm == "天降灵葫_中" then
		self.全屏加速 = 1
		self.拼接特效 = {}
		self.拼接特效[1] = {}
		self.拼接特效[1].特效 = 单位:加载特效(jnm)
		self.拼接特效[1].偏移 = { x = -50, y = -40 }
		qp = true
	elseif jnm == "天降灵葫_小" then
		self.全屏加速 = 1
		self.拼接特效 = {}
		self.拼接特效[1] = {}
		self.拼接特效[1].特效 = 单位:加载特效(jnm)
		self.拼接特效[1].偏移 = { x = -50, y = -40 }
		qp = true
	elseif jnm == "水漫金山" or jnm == "超级水漫金山" then
		self.全屏加速 = 1.5
		self.拼接特效 = {}
		self.拼接特效[#self.拼接特效 + 1] = {}
		self.拼接特效[#self.拼接特效].特效 = 单位:加载特效("水漫金山2")
		self.拼接特效[#self.拼接特效].偏移 = { x = -50, y = -50 }
		self.拼接特效[#self.拼接特效 + 1] = {}
		self.拼接特效[#self.拼接特效].特效 = 单位:加载特效("水漫金山2")
		self.拼接特效[#self.拼接特效].偏移 = { x = 100, y = -100 }
		self.拼接特效[#self.拼接特效 + 1] = {}
		self.拼接特效[#self.拼接特效].特效 = 单位:加载特效("水漫金山2")
		self.拼接特效[#self.拼接特效].偏移 = { x = -185, y = 48 }
		self.拼接特效[#self.拼接特效 + 1] = {}
		self.拼接特效[#self.拼接特效].特效 = 单位:加载特效("水漫金山0")
		self.拼接特效[#self.拼接特效].偏移 = { x = -225, y = -34 }
		self.拼接特效[#self.拼接特效 + 1] = {}
		self.拼接特效[#self.拼接特效].特效 = 单位:加载特效("水漫金山0")
		self.拼接特效[#self.拼接特效].偏移 = { x = -30, y = -168 }
		self.拼接特效[#self.拼接特效 + 1] = {}
		self.拼接特效[#self.拼接特效].特效 = 单位:加载特效("水漫金山1")
		self.拼接特效[#self.拼接特效].偏移 = { x = -221, y = -33 }
		self.拼接特效[#self.拼接特效 + 1] = {}
		self.拼接特效[#self.拼接特效].特效 = 单位:加载特效("水漫金山1")
		self.拼接特效[#self.拼接特效].偏移 = { x = -31, y = -169 }
		qp = true
	elseif jnm == "八凶法阵" then
		self.全屏加速 = 1
		self.拼接特效 = {}
		self.拼接特效[1] = {}
		self.拼接特效[1].特效 = 单位:加载特效("八凶法阵")
		self.拼接特效[1].偏移 = { x = -50, y = -40 }
		qp = true
	elseif jnm == "叱诧风云" then
		self.全屏加速 = 1
		self.拼接特效 = {}
		self.拼接特效[1] = {}
		self.拼接特效[1].特效 = 单位:加载特效("叱诧风云")
		self.拼接特效[1].偏移 = { x = -50, y = -40 }
		qp = true
	elseif jnm == "流沙轻音" then
		self.全屏加速 = 1
		self.拼接特效 = {}
		self.拼接特效[1] = {}
		self.拼接特效[1].特效 = 单位:加载特效("流沙轻音")
		self.拼接特效[1].偏移 = { x = -50, y = -40 }
		qp = true
	elseif jnm == "地狱烈火" or jnm == "超级地狱烈火" then
		self.全屏加速 = 1.8
		self.拼接特效 = {}
		self.拼接特效[#self.拼接特效 + 1] = {}
		self.拼接特效[#self.拼接特效].特效 = 单位:加载特效("地狱烈火2")
		self.拼接特效[#self.拼接特效].偏移 = { x = -261, y = 49 }
		self.拼接特效[#self.拼接特效].延时 = 5
		self.拼接特效[#self.拼接特效 + 1] = {}
		self.拼接特效[#self.拼接特效].特效 = 单位:加载特效("地狱烈火1")
		self.拼接特效[#self.拼接特效].偏移 = { x = -261, y = 49 }
		self.拼接特效[#self.拼接特效].延时 = 5
		--
		self.拼接特效[#self.拼接特效 + 1] = {}
		self.拼接特效[#self.拼接特效].特效 = 单位:加载特效("地狱烈火2")
		self.拼接特效[#self.拼接特效].偏移 = { x = -306, y = -33 }
		self.拼接特效[#self.拼接特效].延时 = 10
		self.拼接特效[#self.拼接特效 + 1] = {}
		self.拼接特效[#self.拼接特效].特效 = 单位:加载特效("地狱烈火1")
		self.拼接特效[#self.拼接特效].偏移 = { x = -306, y = -33 }
		self.拼接特效[#self.拼接特效].延时 = 10
		self.拼接特效[#self.拼接特效 + 1] = {}
		self.拼接特效[#self.拼接特效].特效 = 单位:加载特效("地狱烈火2")
		self.拼接特效[#self.拼接特效].偏移 = { x = -245, y = 179 }
		self.拼接特效[#self.拼接特效].延时 = 10
		self.拼接特效[#self.拼接特效 + 1] = {}
		self.拼接特效[#self.拼接特效].特效 = 单位:加载特效("地狱烈火1")
		self.拼接特效[#self.拼接特效].偏移 = { x = -245, y = 179 }
		self.拼接特效[#self.拼接特效].延时 = 10
		--
		self.拼接特效[#self.拼接特效 + 1] = {}
		self.拼接特效[#self.拼接特效].特效 = 单位:加载特效("地狱烈火2")
		self.拼接特效[#self.拼接特效].偏移 = { x = -109, y = -39 }
		self.拼接特效[#self.拼接特效].延时 = 10
		self.拼接特效[#self.拼接特效 + 1] = {}
		self.拼接特效[#self.拼接特效].特效 = 单位:加载特效("地狱烈火1")
		self.拼接特效[#self.拼接特效].偏移 = { x = -109, y = -39 }
		self.拼接特效[#self.拼接特效].延时 = 10
		--
		self.拼接特效[#self.拼接特效 + 1] = {}
		self.拼接特效[#self.拼接特效].特效 = 单位:加载特效("地狱烈火2")
		self.拼接特效[#self.拼接特效].偏移 = { x = -130, y = -143 }
		self.拼接特效[#self.拼接特效].延时 = 15
		self.拼接特效[#self.拼接特效 + 1] = {}
		self.拼接特效[#self.拼接特效].特效 = 单位:加载特效("地狱烈火1")
		self.拼接特效[#self.拼接特效].偏移 = { x = -130, y = -143 }
		self.拼接特效[#self.拼接特效].延时 = 15
		self.拼接特效[#self.拼接特效 + 1] = {}
		self.拼接特效[#self.拼接特效].特效 = 单位:加载特效("地狱烈火2")
		self.拼接特效[#self.拼接特效].偏移 = { x = -120, y = 94 }
		self.拼接特效[#self.拼接特效].延时 = 15
		self.拼接特效[#self.拼接特效 + 1] = {}
		self.拼接特效[#self.拼接特效].特效 = 单位:加载特效("地狱烈火1")
		self.拼接特效[#self.拼接特效].偏移 = { x = -120, y = 94 }
		self.拼接特效[#self.拼接特效].延时 = 15
		--
		self.拼接特效[#self.拼接特效 + 1] = {}
		self.拼接特效[#self.拼接特效].特效 = 单位:加载特效("地狱烈火2")
		self.拼接特效[#self.拼接特效].偏移 = { x = 71, y = -127 }
		self.拼接特效[#self.拼接特效].延时 = 15
		self.拼接特效[#self.拼接特效 + 1] = {}
		self.拼接特效[#self.拼接特效].特效 = 单位:加载特效("地狱烈火1")
		self.拼接特效[#self.拼接特效].偏移 = { x = 71, y = -127 }
		self.拼接特效[#self.拼接特效].延时 = 15
		--
		self.拼接特效[#self.拼接特效 + 1] = {}
		self.拼接特效[#self.拼接特效].特效 = 单位:加载特效("地狱烈火2")
		self.拼接特效[#self.拼接特效].偏移 = { x = 79, y = -212 }
		self.拼接特效[#self.拼接特效].延时 = 20
		self.拼接特效[#self.拼接特效 + 1] = {}
		self.拼接特效[#self.拼接特效].特效 = 单位:加载特效("地狱烈火1")
		self.拼接特效[#self.拼接特效].偏移 = { x = 79, y = -212 }
		self.拼接特效[#self.拼接特效].延时 = 20
		self.拼接特效[#self.拼接特效 + 1] = {}
		self.拼接特效[#self.拼接特效].特效 = 单位:加载特效("地狱烈火2")
		self.拼接特效[#self.拼接特效].偏移 = { x = 54, y = 0 }
		self.拼接特效[#self.拼接特效].延时 = 20
		self.拼接特效[#self.拼接特效 + 1] = {}
		self.拼接特效[#self.拼接特效].特效 = 单位:加载特效("地狱烈火1")
		self.拼接特效[#self.拼接特效].偏移 = { x = 54, y = 0 }
		self.拼接特效[#self.拼接特效].延时 = 20
		--
		self.拼接特效[#self.拼接特效 + 1] = {}
		self.拼接特效[#self.拼接特效].特效 = 单位:加载特效("地狱烈火2")
		self.拼接特效[#self.拼接特效].偏移 = { x = 180, y = -90 }
		self.拼接特效[#self.拼接特效].延时 = 20
		self.拼接特效[#self.拼接特效 + 1] = {}
		self.拼接特效[#self.拼接特效].特效 = 单位:加载特效("地狱烈火1")
		self.拼接特效[#self.拼接特效].偏移 = { x = 180, y = -90 }
		self.拼接特效[#self.拼接特效].延时 = 20

		qp = true
	elseif jnm == "刀光剑影" then
		self.全屏加速 = 1.48
		self.拼接特效 = {}
		self.拼接特效[1] = {}
		self.拼接特效[1].特效 = 单位:加载特效("蚩尤技能")
		self.拼接特效[1].偏移 = { x = -135, y = -100 }
		for s = 2, 2 do
			self.拼接特效[s] = {}
			self.拼接特效[s].特效 = 单位:加载特效("刀光剑影")
			self.拼接特效[s].偏移 = { x = -126, y = -30 }
		end
		for s = 3, 3 do
			self.拼接特效[s] = {}
			self.拼接特效[s].特效 = 单位:加载特效("刀光剑影2")
			self.拼接特效[s].偏移 = { x = -360 + ((s - 2) * 480 - 120), y = 250 - 175 - ((s - 2) * 75) }
			self.拼接特效[#self.拼接特效].延时 = 100
		end
		qp = true
	elseif jnm == "毁灭之光" then
		self.全屏加速 = 1.48
		self.拼接特效 = {}
		self.拼接特效[1] = {}
		self.拼接特效[1].特效 = 单位:加载特效("蚩尤技能")
		self.拼接特效[1].偏移 = { x = -135, y = -100 }
		for s = 2, 2 do
			self.拼接特效[s] = {}
			self.拼接特效[s].特效 = 单位:加载特效("毁灭之光")
			self.拼接特效[s].偏移 = { x = -126, y = -30 }
		end
		qp = true
	elseif jnm == "武神之怒" then
		self.全屏加速 = 1.48
		self.拼接特效 = {}
		self.拼接特效[1] = {}
		self.拼接特效[1].特效 = 单位:加载特效("蚩尤技能")
		self.拼接特效[1].偏移 = { x = -135, y = -100 }
		for s = 2, 2 do
			self.拼接特效[s] = {}
			self.拼接特效[s].特效 = 单位:加载特效("武神之怒")
			self.拼接特效[s].偏移 = { x = -126, y = -30 }
		end
		qp = true
	elseif jnm == "翻江搅海" then
		self.全屏加速 = 1
		self.拼接特效 = {}
		self.拼接特效[1] = {}
		self.拼接特效[1].特效 = 单位:加载特效("翻江搅海")
		self.拼接特效[1].偏移 = { x = -50, y = -40 }
		qp = true
	elseif jnm == "落叶萧萧" or jnm == "风卷残云" then
		self.全屏加速 = 1
		self.拼接特效 = {}
		self.拼接特效[#self.拼接特效 + 1] = {}
		self.拼接特效[#self.拼接特效].特效 = 单位:加载特效("落叶萧萧")
		self.拼接特效[#self.拼接特效].偏移 = { x = 66 - 100, y = -28 + 50 }
		self.拼接特效[#self.拼接特效 + 1] = {}
		self.拼接特效[#self.拼接特效].特效 = 单位:加载特效("落叶萧萧2")
		self.拼接特效[#self.拼接特效].偏移 = { x = 5 - 100, y = 9 + 50 }
		self.拼接特效[#self.拼接特效].延时 = 10
		self.拼接特效[#self.拼接特效 + 1] = {}
		self.拼接特效[#self.拼接特效].特效 = 单位:加载特效("落叶萧萧2")
		self.拼接特效[#self.拼接特效].偏移 = { x = 77 - 100, y = -5 + 50 }
		self.拼接特效[#self.拼接特效].延时 = 10
		self.拼接特效[#self.拼接特效 + 1] = {}
		self.拼接特效[#self.拼接特效].特效 = 单位:加载特效("落叶萧萧2")
		self.拼接特效[#self.拼接特效].偏移 = { x = -61 - 100, y = -29 + 50 }
		self.拼接特效[#self.拼接特效].延时 = 20
		self.拼接特效[#self.拼接特效 + 1] = {}
		self.拼接特效[#self.拼接特效].特效 = 单位:加载特效("落叶萧萧2")
		self.拼接特效[#self.拼接特效].偏移 = { x = 138 - 100, y = -23 + 50 }
		self.拼接特效[#self.拼接特效].延时 = 20
		self.拼接特效[#self.拼接特效 + 1] = {}
		self.拼接特效[#self.拼接特效].特效 = 单位:加载特效("落叶萧萧2")
		self.拼接特效[#self.拼接特效].偏移 = { x = -109 - 100, y = -62 + 50 }
		self.拼接特效[#self.拼接特效].延时 = 30
		self.拼接特效[#self.拼接特效 + 1] = {}
		self.拼接特效[#self.拼接特效].特效 = 单位:加载特效("落叶萧萧2")
		self.拼接特效[#self.拼接特效].偏移 = { x = 22 - 100, y = -31 + 50 }
		self.拼接特效[#self.拼接特效].延时 = 25
		self.拼接特效[#self.拼接特效 + 1] = {}
		self.拼接特效[#self.拼接特效].特效 = 单位:加载特效("落叶萧萧1")
		self.拼接特效[#self.拼接特效].偏移 = { x = 162 - 100, y = -110 + 50 }
		self.拼接特效[#self.拼接特效].延时 = 30
		qp = true
	elseif jnm == "云暗天昏"  then
		self.拼接特效 = {}
		self.拼接特效[1] = {}
		self.拼接特效[1].特效 = 单位:加载特效("云暗天昏")
		self.拼接特效[1].偏移 = {x=-55,y=15}
		qp = true
	elseif jnm == "枯木逢春" then
		self.全屏加速= 0.7
		self.拼接特效 = {}
		self.拼接特效[#self.拼接特效+1] = {}
		self.拼接特效[#self.拼接特效].特效 = 单位:加载特效("枯木逢春1")
		self.拼接特效[#self.拼接特效].偏移 = {x=66-100,y=-28}
		self.拼接特效[#self.拼接特效+1] = {}
		self.拼接特效[#self.拼接特效].特效 = 单位:加载特效("枯木逢春2")
		self.拼接特效[#self.拼接特效].偏移 = {x=5-70,y=9+50}
		self.拼接特效[#self.拼接特效].延时=40
		qp = true
	elseif jnm == "蛊木迷瘴" then
		self.全屏加速= 0.7
		self.拼接特效 = {}
		self.拼接特效[#self.拼接特效+1] = {}
		self.拼接特效[#self.拼接特效].特效 = 单位:加载特效("蛊木迷瘴")
		self.拼接特效[#self.拼接特效].偏移 = {x=66-100,y=-28+50}
		self.拼接特效[#self.拼接特效+1] = {}
		self.拼接特效[#self.拼接特效].特效 = 单位:加载特效("蛊木迷瘴2")
		self.拼接特效[#self.拼接特效].偏移 = {x=5-100,y=9+50}
		self.拼接特效[#self.拼接特效].延时=40
		self.拼接特效[#self.拼接特效+1] = {}
		self.拼接特效[#self.拼接特效].特效 = 单位:加载特效("蛊木迷瘴2")
		self.拼接特效[#self.拼接特效].偏移 = {x=77-100,y=-5+50}
		self.拼接特效[#self.拼接特效].延时=40
		self.拼接特效[#self.拼接特效+1] = {}
		self.拼接特效[#self.拼接特效].特效 = 单位:加载特效("蛊木迷瘴2")
		self.拼接特效[#self.拼接特效].偏移 = {x=-61-100,y=-29+50}
		self.拼接特效[#self.拼接特效].延时=60
		self.拼接特效[#self.拼接特效+1] = {}
		self.拼接特效[#self.拼接特效].特效 = 单位:加载特效("蛊木迷瘴2")
		self.拼接特效[#self.拼接特效].偏移 = {x=138-100,y=-23+50}
		self.拼接特效[#self.拼接特效].延时=60
		self.拼接特效[#self.拼接特效+1] = {}
		self.拼接特效[#self.拼接特效].特效 = 单位:加载特效("蛊木迷瘴2")
		self.拼接特效[#self.拼接特效].偏移 = {x=-109-100,y=-62+50}
		self.拼接特效[#self.拼接特效].延时=90
		self.拼接特效[#self.拼接特效+1] = {}
		self.拼接特效[#self.拼接特效].特效 = 单位:加载特效("蛊木迷瘴2")
		self.拼接特效[#self.拼接特效].偏移 = {x=22-100,y=-31+50}
		self.拼接特效[#self.拼接特效].延时=80
		self.拼接特效[#self.拼接特效+1] = {}
		self.拼接特效[#self.拼接特效].特效 = 单位:加载特效("蛊木迷瘴1")
		self.拼接特效[#self.拼接特效].偏移 = {x=162-100,y=-110+50}
		self.拼接特效[#self.拼接特效].延时=90
		qp = true
	elseif jnm == "扶摇万里" then
		self.全屏加速 = 1
		self.拼接特效 = {}
		self.拼接特效[1] = {}
		self.拼接特效[1].特效 = 单位:加载特效("扶摇万里")
		self.拼接特效[1].偏移 = { x = -0, y = -0 }
		qp = true
	elseif jnm == "北冥之渊" then
		self.全屏加速 = 1
		self.拼接特效 = {}
		self.拼接特效[1] = {}
		self.拼接特效[1].特效 = 单位:加载特效("北冥之渊")
		self.拼接特效[1].偏移 = { x = -325, y = -110 }
		qp = true
	elseif jnm == "天地洞明" then
		self.全屏加速= 0.7
		self.拼接特效 = {}
		self.拼接特效[1] = {}
		self.拼接特效[1].特效 = 单位:加载特效("天地洞明")
		self.拼接特效[1].偏移 = {x=-127,y=-100}
		qp = true
		self.天地洞明=true
	end
	if qp then
		if 单位.敌我 == 1 then
			self.拼接偏移.x, self.拼接偏移.y = 引擎.宽度 - 262 - ((引擎.宽度 - 800) / 2), 引擎.高度 - 220 - ((引擎.高度 - 600) / 2) --638,449
		else
			self.拼接偏移.x, self.拼接偏移.y = (引擎.宽度 - 800) / 2 + 313, (引擎.高度 - 600) / 2 + 236
		end
	end
end

function 战斗主控:释放()
	self.进程 = "等待"
	self.加载数量 = 0
	self.战斗单位 = {}
	self.战斗流程 = {}
	self.显示排序 = {}
	self.拼接特效 = {}
	self.状态显示 = false
	self.状态显示2 = false
	self.回合数 = 0
	self.特殊状态 = {}
	self.无间地狱 = nil
	self.魔火焚世 = nil
	self.媚眼如丝 = nil
	self.背景状态 = nil
end

function 战斗主控:特殊状态处理(名称, 类型, x, y)
	if 名称 == "无间地狱" then
		if 类型 == 1 then
			self.无间地狱 = __res:取动画2(__res:取地址('shape/tx/', 2808758193)):置循环(true)
		else
			self.无间地狱 = nil
		end
	elseif 名称 == "魔火焚世" then
		if 类型 == 1 then
			self.魔火焚世 = { 动画 = __res:取动画2(__res:取地址('shape/tx/', 1514813037)):置循环(true), x = x, y = y }
		else
			self.魔火焚世 = nil
		end
	elseif 名称 == "媚眼如丝" then
		if 类型 == 1 then
			self.媚眼如丝 = { 动画 = __res:取动画2(__res:取地址('shape/tx/', 3658577102)):置循环(true), x = x, y = y }
		else
			self.媚眼如丝 = nil
		end
	elseif 名称 == "清静菩提" then
		if 类型 == 1 then
			self.清静菩提 = {动画= __res:取动画2(__res:取地址('shape/tx/',1772528793)):置循环(true),x=x,y=y}
		else
			self.清静菩提 = nil
		end
	end
end

function 战斗主控:添加战斗提醒文字(q)
	self.战斗信息提示.开关 = true
	self.战斗信息提示.文字 = 名字16:置颜色(232, 140, 32):取精灵(q)
	self.战斗信息提示.起始时间 = os.time()
end

function 战斗主控:释放()
	self.进程 = "等待"
	self.加载数量 = 0
	self.战斗单位 = nil
	self.战斗流程 = {}
	self.显示排序 = {}
	self.拼接特效 = {}
	self.状态显示 = false
	self.状态显示2 = false
	self.回合数 = 0
	self.特殊状态 = {}
	self.无间地狱 = nil
	self.魔火焚世 = nil
	self.媚眼如丝 = nil
	self.清静菩提 = nil
	self.背景状态 = nil
end

function 战斗主控:更新(dt)
	dt = dt * 1.5
	self.显示表 = {}
	local _加入显示 = ggf.insert(self.显示表)
	if self.无间地狱 then
		self.无间地狱:更新(dt)
	end
	if self.魔火焚世 then
		self.魔火焚世.动画:更新(dt)
	end
	if self.媚眼如丝 then
		self.媚眼如丝.动画:更新(dt)
	end
	if self.清静菩提 then
		self.清静菩提.动画:更新(dt)
	end
	for n = 1, #self.战斗单位 do
		if self.进程 == "执行" then
			self.战斗单位[n]:更新(dt * 1)--加速
		else
			if self.战斗单位[n].敌我 == 1 then
				self.战斗单位[n]:更新(dt * 0.3)
			else
				self.战斗单位[n]:更新(dt)
			end
		end
		_加入显示(self.战斗单位[n])
	end
	table.sort(self.显示表, 排序)
	if self.进程 == "计算" and self.战斗流程 ~= nil and self.战斗流程[1] ~= nil then
		if self.战斗流程[1].允许 == false then
			if self.战斗流程[1].提示 == nil or self.战斗流程[1].提示.允许 == false then
				self.战斗流程[1].可以执行 = true
			elseif self.战斗流程[1].提示.类型 == "法术" and self.战斗流程[1].可以执行 == nil then
				if self.战斗流程[1].特技名称 == nil then
					if self.战斗流程[1].提示.允许 then
						self:添加战斗提醒文字(self.战斗流程[1].提示.名称)
						local lsmc = 分割文本(self.战斗流程[1].提示.名称, "使用了")
						if self.当前 == 多开数据.当前 then
							多开数据[self.当前].__主控:播放特效音乐(取音效(lsmc[2]))
						end
					end
				elseif self.战斗流程[1].提示.允许 then
					self.战斗单位[self.战斗流程[1].攻击方]:添加特技内容(self.战斗流程[1].特技名称)
				end
				self.战斗流程[1].可以执行 = true
			end
		end
		if self.战斗流程[1].战斗提示 and self.战斗流程[1].战斗提示.内容 and self.战斗流程[1].战斗提示.编号 then
			self.战斗单位[self.战斗流程[1].战斗提示.编号]:设置提示(self.战斗流程[1].战斗提示.内容)
			self.战斗流程[1].战斗提示 = nil
		end
		if self.战斗流程[1].可以执行 then
			self.战斗流程[1].允许 = true
			self.执行流程 = self.战斗流程[1].流程
			self.进程 = "执行"
		end
		if self.背景状态 ~= nil then
			self.背景状态 = 1
		end
	elseif self.进程 == "执行" then
		self:流程更新()
		if self.拼接特效 ~= nil then
			for n = 1, #self.拼接特效 do
				if self.拼接特效[n] ~= nil then
					if self.拼接特效[n].延时 ~= nil then
						self.拼接特效[n].延时 = self.拼接特效[n].延时 - 1
						if self.拼接特效[n].延时 == 1 then
							self.拼接特效[n].延时 = nil
						end
					else
						self.拼接特效[n].特效:更新(dt * self.全屏加速)
						if not self.拼接特效[n].延时 then
							_加入显示(self.拼接特效[n])
						end
						if self.拼接特效[n].结束时间 ~= nil then
							self.拼接特效[n].结束时间 = self.拼接特效[n].结束时间 - 1
							if self.拼接特效[n].结束时间 < 30 then
								self.拼接特效[n].偏移.y = self.拼接特效[n].偏移.y + 4.5
							end
							if self.拼接特效[n].结束时间 == 0 and not self.拼接特效[n].特效:是否播放() then
								table.remove(self.拼接特效, n)
								if #self.拼接特效 == self.掉血流程 then self.掉血流程 = nil end
							end
						else
							if not self.拼接特效[n].特效:是否播放() then
								table.remove(self.拼接特效, n)
							end
							if #self.拼接特效 == n and self.拼接特效[n].特效:取当前帧() >= math.floor(self.拼接特效[n].特效:取帧数() / 1.5) then self.掉血流程 = nil end
						end
					end
				end
			end
			if #self.拼接特效 == 0 then
				self.拼接特效 = nil
				self.背景状态 = nil
			end
		end
	end
end

function 战斗主控:显示(x, y)
	self.背景:显示(0, 0)
	if self.无间地狱 == nil then
		self.背景圆:显示(__引擎宽高2(1) - 235, __引擎宽高2(2) - 125)
	else
		self.无间地狱:显示(__引擎宽高2(1), __引擎宽高2(2))
	end
	if self.魔火焚世 ~= nil then
		self.魔火焚世.动画:显示(self.魔火焚世.x, self.魔火焚世.y)
	end
	if self.媚眼如丝 ~= nil then
		self.媚眼如丝.动画:显示(__引擎宽高2(1), __引擎宽高2(2))
	end
	if self.清静菩提 ~= nil then
		self.清静菩提.动画:显示(__引擎宽高2(1), __引擎宽高2(2))
	end
	for i = 1, #self.显示表 do
		if self.显示表[i].特效 then
			self.显示表[i].特效:显示(math.floor(self.拼接偏移.x + self.显示表[i].偏移.x), math.floor(self.拼接偏移.y + self.显示表[i].偏移.y))
		else
			self.显示表[i]:显示(x, y)
		end
	end
	-- for n=1,#self.战斗单位 do
	--     self.战斗单位[n]:显示(dt,x,y)
	--     -- if self.状态显示 and self.战斗单位[n].单位类型 == "角色" and self.战斗单位[n].敌我 == 1 then
	--     --     self.战斗单位[n].头像背景:显示(784+引擎.宽度-850,180+(self.战斗单位[n].排序位置*50)-50)
	--     --     self.战斗单位[n].人物头像:显示(787+引擎.宽度-850,183+(self.战斗单位[n].排序位置*50)-50)
	--     --     if self.战斗单位[n].状态信息 then
	--     --         self.战斗单位[n].状态框:显示(755+引擎.宽度-850,180+(self.战斗单位[n].排序位置*50)-50)
	--     --         self.战斗单位[n].状背景:显示(759+引擎.宽度-850,184+(self.战斗单位[n].排序位置*50)-50)
	--     --     end
	--     -- elseif self.状态显示2 and self.战斗单位[n].单位类型 == "角色" and self.战斗单位[n].敌我 ~= 1 then
	--     --     self.战斗单位[n].头像背景:显示((self.战斗单位[n].排序位置*50)-50+230,12)
	--     --     self.战斗单位[n].人物头像:显示((self.战斗单位[n].排序位置*50)-50+233,15)
	--     --     if self.战斗单位[n].状态信息 then
	--     --         self.战斗单位[n].状态框:显示((self.战斗单位[n].排序位置*50)-50+230,67)
	--     --         self.战斗单位[n].状背景:显示((self.战斗单位[n].排序位置*50)-50+234,71)
	--     --     end
	--     -- end
	-- end
	if self.进程 == "命令" then
		self.秒显示 = 0
		self.分显示 = 0
		self.结果 = os.time() - self.命令数据.计时
		self.显示时间 = 0
		--print(self.结果)
		if self.结果 >= 1 then
			self.命令数据.计时 = os.time()
			self.命令数据.秒 = self.命令数据.秒 - 1
			if self.命令数据.秒 < 0 then
				if self.命令数据.分 <= 0 and self.命令数据.秒 <= 0 then
					多开数据[self.当前].__UI界面.界面层.战斗界面:置可见(false)
					self.进程 = "等待"
					self.显示时间 = 1
				elseif self.命令数据.秒 <= 0 then
					self.命令数据.秒 = 9
					self.命令数据.分 = self.命令数据.分 - 1
				end
			end
		end
		if self.显示时间 == 0 then
			self.分显示 = self.命令数据.分 + 1
			if self.分显示 > 10 then
				self.分显示 = 1
			end
			self.秒显示 = self.命令数据.秒 + 1
			if self.秒显示 > 10 then
				self.秒显示 = 1
			end
			self.数字图片[self.分显示]:显示(__引擎宽高2(1) - 75, 60)
			self.数字图片[self.秒显示]:显示(__引擎宽高2(1) - 25, 60)
		end
	elseif self.进程 == "执行" then
		if self.战斗信息提示.开关 then
			self.战斗信息提示.文字:显示(__引擎宽高2(1) - 75, 引擎.高度 - 60)
			if os.time() - self.战斗信息提示.起始时间 >= 2 then
				self.战斗信息提示.开关 = false
			end
		end
		if self.战斗流程[1] and 
			type(self.战斗流程[1]) == "table" and 
			self.战斗流程[1].被攻击 and 
			type(self.战斗流程[1].被攻击) == "table" and 
			self.战斗流程[1].被攻击[1] and 
			type(self.战斗流程[1].被攻击[1]) == "table" and 
			self.战斗流程[1].被攻击[1].编号 and 
			type(self.战斗流程[1].被攻击[1].编号) == "table" and 
			self.战斗单位[self.战斗流程[1].攻击方] and 
			type(self.战斗单位[self.战斗流程[1].攻击方]) == "table" and 
			self.战斗单位[self.战斗流程[1].攻击方].超级夜战 == 1 then
			self.战斗单位[self.战斗流程[1].被攻击[1].编号]:单位血条显示()
		end
	end
	for n = 1, #self.战斗单位 do
		if self.战斗单位[n].掉血开关 then
			if self.战斗单位[n].伤害类型 == 1 then
				self.战斗单位[n]:掉血显示()
			elseif self.战斗单位[n].伤害类型 == 3 or self.战斗单位[n].伤害类型 == 4 then
				self.战斗单位[n]:暴击显示()
			elseif self.战斗单位[n].伤害类型 == 3.5 then
				self.战斗单位[n]:法术暴击显示()
			else
				self.战斗单位[n]:加血显示()
			end
		end
	end
end

function 战斗主控:设置血量同步(数据)
	for k = 1, #数据 do
		self.战斗单位[k].最大气血 = 数据[k].最大气血
		self.战斗单位[k].气血上限 = 数据[k].气血上限
		self.战斗单位[k].气血 = 数据[k].气血
		self.战斗单位[k].魔法 = 数据[k].魔法
		self.战斗单位[k].最大魔法 = 数据[k].最大魔法
		if 多开数据[self.当前].角色信息.id == self.战斗单位[k].数据.id then
			if self.战斗单位[k].数据.类型 == "角色" then
				多开数据[self.当前].角色信息.气血 = 数据[k].气血
				多开数据[self.当前].角色信息.气血上限 = 数据[k].气血上限
				多开数据[self.当前].角色信息.最大气血 = 数据[k].最大气血
				多开数据[self.当前].角色信息.魔法 = 数据[k].魔法
				多开数据[self.当前].角色信息.最大魔法 = 数据[k].最大魔法
				多开数据[self.当前].角色信息.愤怒 = 数据[k].愤怒
			elseif self.战斗单位[k].数据.类型 == "bb" then
				多开数据[self.当前].角色信息.参战宝宝.气血 = 数据[k].气血
				多开数据[self.当前].角色信息.参战宝宝.最大气血 = 数据[k].最大气血
				多开数据[self.当前].角色信息.参战宝宝.魔法 = 数据[k].魔法
				多开数据[self.当前].角色信息.参战宝宝.最大魔法 = 数据[k].最大魔法
			end
		end
	end
end

function 战斗主控:设置魔法愤怒同步(数据)
	for k = 1, #数据 do
		if self.战斗单位[k] ~= nil then
			self.战斗单位[k].魔法 = 数据[k].魔法
			self.战斗单位[k].最大魔法 = 数据[k].最大魔法
			if 多开数据[self.当前].角色信息.id == self.战斗单位[k].数据.id then
				if self.战斗单位[k].数据.类型 == "角色" then
					多开数据[self.当前].角色信息.魔法 = 数据[k].魔法
					多开数据[self.当前].角色信息.最大魔法 = 数据[k].最大魔法
					多开数据[self.当前].角色信息.愤怒 = 数据[k].愤怒
				elseif self.战斗单位[k].数据.类型 == "bb" then
					多开数据[self.当前].角色信息.参战宝宝.魔法 = 数据[k].魔法
					多开数据[self.当前].角色信息.参战宝宝.最大魔法 = 数据[k].最大魔法
				end
			end
		end
	end
end

return 战斗主控
